From 819412a970a18ff9a186108af70a81198c0687cd Mon Sep 17 00:00:00 2001 From: mausch Date: Wed, 9 Jun 2010 19:35:35 -0300 Subject: [PATCH] updated Windsor reference to 2.1.1 --- .gitignore | 7 + ....Facilities.QuartzIntegration.Tests.csproj | 10 +- ...Castle.Facilities.QuartzIntegration.csproj | 15 +- SampleApp/SampleApp.csproj | 10 +- lib/Castle.Core.dll | Bin 61440 -> 94208 bytes lib/Castle.Core.xml | 3455 ++++++++++ lib/Castle.DynamicProxy2.dll | Bin 98304 -> 167936 bytes lib/Castle.DynamicProxy2.xml | 1471 +++++ lib/Castle.MicroKernel.dll | Bin 131072 -> 208896 bytes lib/Castle.MicroKernel.xml | 5672 +++++++++++++++++ lib/Castle.Windsor.dll | Bin 61440 -> 73728 bytes lib/Castle.Windsor.xml | 1571 +++++ 12 files changed, 12195 insertions(+), 16 deletions(-) create mode 100644 .gitignore create mode 100644 lib/Castle.Core.xml create mode 100644 lib/Castle.DynamicProxy2.xml create mode 100644 lib/Castle.MicroKernel.xml create mode 100644 lib/Castle.Windsor.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2285fe7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*/bin +*/obj +*.user +*.suo +*.cache +_ReSharper* +_UpgradeReport_Files \ No newline at end of file diff --git a/QuartzNetIntegration.Tests/Castle.Facilities.QuartzIntegration.Tests.csproj b/QuartzNetIntegration.Tests/Castle.Facilities.QuartzIntegration.Tests.csproj index 039a26a..820b6a9 100644 --- a/QuartzNetIntegration.Tests/Castle.Facilities.QuartzIntegration.Tests.csproj +++ b/QuartzNetIntegration.Tests/Castle.Facilities.QuartzIntegration.Tests.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - 9.0.21022 + 9.0.30729 2.0 {26134936-1662-4268-ABF0-6F40279A7AA6} Library @@ -31,19 +31,19 @@ 4 - + False ..\lib\Castle.Core.dll - + False ..\lib\Castle.DynamicProxy2.dll - + False ..\lib\Castle.MicroKernel.dll - + False ..\lib\Castle.Windsor.dll diff --git a/QuartzNetIntegration/Castle.Facilities.QuartzIntegration.csproj b/QuartzNetIntegration/Castle.Facilities.QuartzIntegration.csproj index 450d30f..fc3bf13 100644 --- a/QuartzNetIntegration/Castle.Facilities.QuartzIntegration.csproj +++ b/QuartzNetIntegration/Castle.Facilities.QuartzIntegration.csproj @@ -3,14 +3,14 @@ Debug AnyCPU - 9.0.21022 + 9.0.30729 2.0 {C0056BBC-DCE4-4F05-8EAC-4DEB2EAFA90A} Library Properties Castle.Facilities.QuartzIntegration Castle.Facilities.QuartzIntegration - v2.0 + v3.5 512 @@ -31,19 +31,19 @@ 4 - + False ..\lib\Castle.Core.dll - + False ..\lib\Castle.DynamicProxy2.dll - + False ..\lib\Castle.MicroKernel.dll - + False ..\lib\Castle.Windsor.dll @@ -56,6 +56,9 @@ ..\lib\Quartz.dll + + 3.5 + diff --git a/SampleApp/SampleApp.csproj b/SampleApp/SampleApp.csproj index a742b6a..51b64a3 100644 --- a/SampleApp/SampleApp.csproj +++ b/SampleApp/SampleApp.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - 9.0.21022 + 9.0.30729 2.0 {99278FD2-0461-489C-ACA2-29EDE4A28F0A} Exe @@ -31,19 +31,19 @@ 4 - + False ..\lib\Castle.Core.dll - + False ..\lib\Castle.DynamicProxy2.dll - + False ..\lib\Castle.MicroKernel.dll - + False ..\lib\Castle.Windsor.dll diff --git a/lib/Castle.Core.dll b/lib/Castle.Core.dll index a10d5979079797941a10cec2a23ab793ee9c85dd..b4a80932cd60793581b0ab1e44d52fad7ef83ea5 100644 GIT binary patch literal 94208 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 Yfn^CSOJG?7%Mw_Yz_JAXzm&lL0nV^$fB*mh literal 61440 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 VL + + + Castle.Core + + + + + This attribute is usefull only when you want to register all components + on an assembly as a batch process. + By doing so, the batch register will look + for this attribute to distinguish components from other classes. + + + + + Base for Attributes that want to express lifestyle + chosen by the component. + + + + + Initializes a new instance of the class. + + The type. + + + + Gets or sets the lifestyle. + + The lifestyle. + + + + Initializes a new instance of the class. + + The key. + + + + Initializes a new instance of the class. + + The key. + The service. + + + + Initializes a new instance of the class. + + The key. + The service. + The lifestyle. + + + + Gets the service. + + The service. + + + + Gets the key. + + The key. + + + + Associates a custom component with a component + + + + + Initializes a new instance of the class. + + Type of the component activator. + + + + Gets the type of the component activator. + + The type of the component activator. + + + + Specifies the proxying behavior for a component. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether the generated + interface proxy should inherit from . + + + + + Determines if the component requires a single interface proxy. + + true if the component requires a single interface proxy. + + + + Gets or sets the additional interfaces used during proxy generation. + + + + + Marks as property to be skipped and not be wired + by the IoC container + + + + + Used to declare that a component wants interceptors acting on it. + + + + + Constructs the InterceptorAttribute pointing to + a key to a interceptor + + + + + + Constructs the InterceptorAttribute pointing to + a service + + + + + + Indicates that the target components wants a + singleton lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + transient lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + per thread lifestyle. + + + + + Initializes a new instance of the class. + + + + + Indicates that the target components wants a + per web request lifestyle. + + + + + Indicates that the target components wants a + pooled lifestyle. + + + + + Initializes a new instance of the class + using the default initial pool size (5) and the max pool size (15). + + + + + Initializes a new instance of the class. + + Initial size of the pool. + Max pool size. + + + + Gets the initial size of the pool. + + The initial size of the pool. + + + + Gets the maximum pool size. + + The size of the max pool. + + + + Indicates that the target components wants a + custom lifestyle. + + + + + Initializes a new instance of the class. + + The lifestyle handler. + + + + Gets the type of the lifestyle handler. + + The type of the lifestyle handler. + + + + Provides functionality for disassembling instances of attributes to CustomAttributeBuilder form, during the process of emiting new types by Dynamic Proxy. + + + + + Disassembles given attribute instance back to corresponding CustomAttributeBuilder. + + An instance of attribute to disassemble + corresponding 1 to 1 to given attribute instance, or null reference. + + Implementers should return that corresponds to given attribute instance 1 to 1, + that is after calling specified constructor with specified arguments, and setting specified properties and fields with values specified + we should be able to get an attribute instance identical to the one passed in . Implementer can return null + if it wishes to opt out of replicating the attribute. Notice however, that for some cases, like attributes passed explicitly by the user + it is illegal to return null, and doing so will result in exception. + + + + + Exposes means to change target objects of proxies and invocations + + + + + Changes the target object () of current . + + The new value of target of invocation. + + Although the method takes the actual instance must be of type assignable to , otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + Permanently changes the target object of the proxy. This does not affect target of the current invocation. + + The new value of target of the proxy. + + Although the method takes the actual instance must be of type assignable to proxy's target type, otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + New interface that is going to be used by DynamicProxy 2 + + + + + Provides an extension point that allows proxies to choose specific interceptors on + a per method basis. + + + + + Selects the interceptors that should intercept calls to the given . + + The type declaring the method to intercept. + The method that will be intercepted. + All interceptors registered with the proxy. + An array of interceptors to invoke upon calling the . + + This method is called only once per proxy instance, upon the first call to the + . Either an empty array or null are valid return values to indicate + that no interceptor should intercept calls to the method. Although it is not advised, it is + legal to return other implementations than these provided in + . + + + + + Encapsulates an invocation of a proxied method. + + + + + Overrides the value of an argument at the given with the + new provided. + + + This method accepts an , however the value provided must be compatible + with the type of the argument defined on the method, otherwise an exception will be thrown. + + The index of the argument to override. + The new value for the argument. + + + + Gets the value of the argument at the specified . + + The index. + The value of the argument at the specified . + + + + Returns the concrete instantiation of the , with any generic + parameters bound to real types. + + + The concrete instantiation of the , or the if + not a generic method. + + Can be slower than calling . + + + + Returns the concrete instantiation of , with any + generic parameters bound to real types. + + The concrete instantiation of , or + if not a generic method. + Can be slower than calling . + + + + Proceeds the call to the next interceptor in line, and ultimately to the target method. + + + Since interface proxies without a target don't have the target implementation to proceed to, + it is important, that the last interceptor does not call this method, otherwise a + will be thrown. + + + + + Gets the proxy object on which the intercepted method is invoked. + + Proxy object on which the intercepted method is invoked. + + + + Gets the object on which the invocation is performed. This is different from proxy object + because most of the time this will be the proxy target object. + + + The invocation target. + + + + Gets the type of the target object for the intercepted method. + + The type of the target object. + + + + Gets the arguments that the has been invoked with. + + The arguments the method was invoked with. + + + + Gets the generic arguments of the method. + + The generic arguments, or null if not a generic method. + + + + Gets the representing the method being invoked. + + The representing the method being invoked. + + + + For interface proxies, this will point to the on the target class. + + The method invocation target. + + + + Gets or sets the return value of the method. + + The return value of the method. + + + + Interceptors might implement this to receive the + ComponentModel on behalf of the component where the + interceptor is acting. + + + + + Get the proxy target (note that null is a valid target!) + + + + + + Gets the interceptors for the proxy + + + + + + Abstract representation of a vertex. + + + + + The nodes that dependes on this node + + + + + The nodes that this node depends + + + + + The node has not been visited yet + + + + + This node is in the process of being visited + + + + + This now was visited + + + + + Represents a collection of objects + which are guaranted to be unique + and holds a color for them + + + + + Holds a timestamp (integer) + for a given item + + + + + Returns the node at the specified index. + + The lookup index. + The node at the specified index. + + If the specified is greater than the + number of objects within the list. + + + + + Validates the specified index. + + The lookup index. + + If the index is invalid. + + + + + Creates a new lock. + + + + + + Lifecycle interface. If implemented by a component, + the method Initialized will be invoked by the container + before making the component available to the external world. + + + + + Implementors should perform any initialization logic. + + + + + Only called for components that + belongs to a pool when the component + comes back to the pool. + + + + + Implementors should perform any + initialization/clean up. + + + + + Interface for components that wish to be started by the container + + + + + Starts this instance. + + + + + Stops this instance. + + + + + Provides a factory that can produce either or + classes. + + + + + Manages the instantiation of s. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + Gets the configuration file. + + i.e. log4net.config + + + + + Summary description for ConsoleFactory. + + + + + NullLogFactory used when logging is turned off. + + + + + Creates an instance of ILogger with the specified name. + + Name. + + + + + Creates an instance of ILogger with the specified name and LoggerLevel. + + Name. + Level. + + + + + Creates outputing + to files. The name of the file is derived from the log name + plus the 'log' extension. + + + + + Used to create the TraceLogger implementation of ILogger interface. See . + + + + + The Logger sending everything to the standard output streams. + This is mainly for the cases when you have a utility that + does not have a logger to supply. + + + + + The Level Filtered Logger class. This is a base clase which + provides a LogLevel attribute and reroutes all functions into + one Log method. + + + + + Manages logging. + + + This is a facade for the different logging subsystems. + It offers a simplified interface that follows IOC patterns + and a simplified priority/level/severity abstraction. + + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal error message. + + The Message + + + + Logs a fatal error message. + + The Message + The Exception + + + + Logs a fatal error message. + + Message format + Array of objects to write using format + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + If the name has an empty element name. + + + + Determines if messages of priority "debug" will be logged. + + True if "debug" messages will be logged. + + + + Determines if messages of priority "info" will be logged. + + True if "info" messages will be logged. + + + + Determines if messages of priority "warn" will be logged. + + True if "warn" messages will be logged. + + + + Determines if messages of priority "error" will be logged. + + True if "error" messages will be logged. + + + + Determines if messages of priority "fatal" will be logged. + + True if "fatal" messages will be logged. + + + + Determines if messages of priority "fatalError" will be logged. + + True if "fatalError" messages will be logged. + + + + Creates a new LevelFilteredLogger. + + + + + Keep the instance alive in a remoting scenario + + + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + Message format + Array of objects to write using format + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + Message format + Array of objects to write using format + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + Message format + Array of objects to write using format + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + Message format + Array of objects to write using format + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + Message format + Array of objects to write using format + + + + Logs a fatal error message. + + The Message + + + + Logs a fatal error message. + + The Message + The Exception + + + + Logs a fatal error message. + + Message format + Array of objects to write using format + + + + Implementors output the log content by implementing this method only. + Note that exception can be null + + + + + + + + + The LoggerLevel that this logger + will be using. Defaults to LoggerLevel.Off + + + + + The name that this logger will be using. + Defaults to String.Empty + + + + + Determines if messages of priority "debug" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "info" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "warn" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "error" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + true if log level flags include the bit + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug and the Name + set to String.Empty. + + + + + Creates a new ConsoleLogger with the Name + set to String.Empty. + + The logs Level. + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug. + + The logs Name. + + + + Creates a new ConsoleLogger. + + The logs Name. + The logs Level. + + + + A Common method to log. + + The level of logging + The name of the logger + The Message + The Exception + + + + Returns a new ConsoleLogger with the name + added after this loggers name, with a dot in between. + + The added hierarchical name. + A new ConsoleLogger. + + + + The Logger using standart Diagnostics namespace. + + + + + Creates a logger based on . + + + + + + Creates a logger based on . + + + + + + + Creates a logger based on . + + + + + + + + The Null Logger class. This is useful for implementations where you need + to provide a logger to a utility class, but do not want any output from it. + It also helps when you have a utility that does not have a logger to supply. + + + + + Provides an interface that supports and + allows the storage and retrieval of Contexts. These are supported in + both log4net and NLog. + + + + + Exposes the Global Context of the extended logger. + + + + + Exposes the Thread Context of the extended logger. + + + + + Exposes the Thread Stack of the extended logger. + + + + + Creates a new NullLogger. + + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + Returns this NullLogger. + + Ignored + This ILogger instance. + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + Returns empty context properties. + + + + + Returns empty context properties. + + + + + Returns empty context stacks. + + + + + Interface for Context Properties implementations + + + + This interface defines a basic property get set accessor. + + + Based on the ContextPropertiesBase of log4net, by Nicko Cadell. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + The Stream Logger class. This class can stream log information + to any stream, it is suitable for storing a log file to disk, + or to a MemoryStream for testing your components. + + + This logger is not thread safe. + + + + + Creates a new StreamLogger with default encoding + and buffer size. Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + + + Creates a new StreamLogger with default buffer size. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + + + Creates a new StreamLogger. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + The buffer size that will be used for this stream. + + + + + + Creates a new StreamLogger with + Debug as default Level. + + The name of the log. + The StreamWriter the log will write to. + + + + The TraceLogger sends all logging to the System.Diagnostics.TraceSource + built into the .net framework. + + + Logging can be configured in the system.diagnostics configuration + section. + + If logger doesn't find a source name with a full match it will + use source names which match the namespace partially. For example you can + configure from all castle components by adding a source name with the + name "Castle". + + If no portion of the namespace matches the source named "Default" will + be used. + + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + The default logging level at which this source should write messages. In almost all cases this + default value will be overridden in the config file. + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + + + + The WebLogger sends everything to the HttpContext.Trace + + + Trace must be enabled on the Asp.Net configuration file (web.config or machine.config) + + + + + Creates a new WebLogger with the priority set to DEBUG. + + + + + Creates a new WebLogger. + + The Log level typecode. + + + + Creates a new WebLogger. + + The Log name. + + + + Creates a new WebLogger. + + The Log name. + The Log level typecode. + + + + A Common method to log. + + The level of logging + The Log name. + The Message + The Exception + + + + Just returns this logger (WebLogger is not hierarchical). + + Ignored + This ILogger instance. + + + + Tries to get the current http context's trace context. + + The current http context's trace context or null if none is + available + + + + Supporting Logger levels. + + + + + Logging will be off + + + + + Fatal logging level + + + + + Error logging level + + + + + Warn logging level + + + + + Info logging level + + + + + Debug logging level + + + + + Pendent + + + + + Deserializes the specified node into an abstract representation of configuration. + + The node. + + + + + If a config value is an empty string we return null, this is to keep + backward compability with old code + + + + + This is an abstract implementation + that deals with methods that can be abstracted away + from underlying implementations. + + + AbstractConfiguration makes easier to implementers + to create a new version of + + + + + is a interface encapsulating a configuration node + used to retrieve configuration values. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the convertion fails. + + The Value converted into the specified type. + + + + Gets the name of the node. + + + The Name of the node. + + + + + Gets the value of the node. + + + The Value of the node. + + + + + Gets an of + elements containing all node children. + + The Collection of child nodes. + + + + Gets an of the configuration attributes. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the convertion fails. + + The Value converted into the specified type. + + + + Gets the name of the . + + + The Name of the . + + + + + Gets the value of . + + + The Value of the . + + + + + Gets all child nodes. + + The of child nodes. + + + + Gets node attributes. + + + All attributes of the node. + + + + + A collection of objects. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Summary description for MutableConfiguration. + + + + + Initializes a new instance of the class. + + The name. + + + + Gets the value of . + + + The Value of the . + + + + + Enumeration used to mark the component's lifestyle. + + + + + No lifestyle specified. + + + + + Singleton components are instantiated once, and shared + between all clients. + + + + + Thread components have a unique instance per thread. + + + + + Transient components are created on demand. + + + + + Optimization of transient components that keeps + instance in a pool instead of always creating them. + + + + + PerWebRequest components are created once per Http Request + + + + + Any other logic to create/release components. + + + + + + + + + + Represents the collection of information and + meta information collected about a component. + + + + Name (key) of the component + + + Service exposed + + + Implementation for the service + + + Extended properties + + + Lifestyle for the component + + + Custom lifestyle, if any + + + Custom activator, if any + + + Dependencies the kernel must resolve + + + All available constructors + + + All potential properties that can be setted by the kernel + + + Steps of lifecycle + + + External parameters + + + Configuration node associated + + + Interceptors associated + + + /// Custom dependencies/// + + + + Constructs a ComponentModel + + + + + Requires the selected property dependencies. + + The property selector. + + + + Requires the property dependencies of type . + + The dependency type. + + + + Sets or returns the component key + + + + + Gets or sets the service exposed. + + The service. + + + + Gets or sets the component implementation. + + The implementation. + + + + Gets or sets a value indicating whether the component requires generic arguments. + + + true if generic arguments are required; otherwise, false. + + + + + Gets or sets the extended properties. + + The extended properties. + + + + Gets the constructors candidates. + + The constructors. + + + + Gets the properties set. + + The properties. + + + + Gets or sets the configuration. + + The configuration. + + + + Gets the lifecycle steps. + + The lifecycle steps. + + + + Gets or sets the lifestyle type. + + The type of the lifestyle. + + + + Gets or sets the strategy for + inspecting public properties + on the components + + + + + Gets or sets the custom lifestyle. + + The custom lifestyle. + + + + Gets or sets the custom component activator. + + The custom component activator. + + + + Gets the interceptors. + + The interceptors. + + + + Gets the parameter collection. + + The parameters. + + + + Dependencies are kept within constructors and + properties. Others dependencies must be + registered here, so the kernel (as a matter + of fact the handler) can check them + + + + + Gets the custom dependencies. + + The custom dependencies. + + + + Represents a constructor of the component + that the container can use to initialize it properly. + + + + + Initializes a new instance of the class. + + The constructor info. + The dependencies. + + + + Gets the ConstructorInfo (from reflection). + + The constructor. + + + + Gets the dependencies this constructor candidate exposes. + + The dependencies. + + + + Collection of + + + + + Gets the fewer arguments candidate. + + The fewer arguments candidate. + + + + Represents a dependency (other component or a + fixed value available through external configuration). + + + + + Initializes a new instance of the class. + + The type. + The dependency key. + Type of the target. + if set to true [is optional]. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Serves as a hash function for a particular type, suitable + for use in hashing algorithms and data structures like a hash table. + + + A hash code for the current . + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + Gets or sets the type of the dependency. + + The type of the dependency. + + + + Gets or sets the dependency key. + + The dependency key. + + + + Gets the type of the target. + + The type of the target. + + + + Gets or sets whether this dependency is optional. + + + true if this dependency is optional; otherwise, false. + + + + + Collection of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The dependencies. + + + + Represents an reference to a Interceptor component. + + + + + Initializes a new instance of the class. + + The component key. + + + + Initializes a new instance of the class. + + Type of the service. + + + + Gets an for the component key. + + The component key. + The + + + + Gets an for the service. + + The service. + The + + + + Gets an for the service. + + The service type. + The + + + + Gets the type of the service. + + The type of the service. + + + + Gets the interceptor component key. + + The component key. + + + + Gets the type of the reference. + + The type of the reference. + + + + Collection of + + + + + Adds the specified item. + + The interceptor. + + + + Adds the specified interceptor as the first. + + The interceptor. + + + + Adds the specified interceptor as the last. + + The interceptor. + + + + Inserts the specified interceptor at the specified index. + + The index. + The interceptor. + + + + When implemented by a class, copies the elements of + the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is . + + is less than zero. + + + is multidimensional. + -or- + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Adds the interceptor to the end of the interceptors list if it does not exist already. + + The interceptor reference. + + + + Gets a value indicating whether this instance has interceptors. + + + true if this instance has interceptors; otherwise, false. + + + + + Gets the number of + elements contained in the . + + + + + + Gets an object that + can be used to synchronize access to the . + + + + + + Gets a value + indicating whether access to the is synchronized + (thread-safe). + + + + + + Represents a collection of ordered lifecycle steps. + + + + + Initializes a new instance of the class. + + + + + Returns all steps for the commission phase + + + + + + Returns all steps for the decommission phase + + + + + + Adds a step to the commission or decomission phases. + + + + + + + Adds a step as the first step to execute for the commission or decomission phase. + + + + + + + Copies the elements of + the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is . + + is less than zero. + + + is multidimensional. + -or- + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets a value indicating whether this instance has commission steps. + + + true if this instance has commission steps; otherwise, false. + + + + + Gets a value indicating whether this instance has decommission steps. + + + true if this instance has decommission steps; otherwise, false. + + + + + Gets the number of + elements contained in the . + + + + + + Gets an object that + can be used to synchronize access to the . + + + + + + Gets a value + indicating whether access to the is synchronized + (thread-safe). + + + + + + Represents meta information associated with a method + (not yet defined) + + + + + Initializes a new instance of the class. + + The config node. + + + + Gets the config node. + + The config node. + + + + Collection of + + + + + Gets the method info2 model. + + The method info2 model. + + + + Represents a parameter. Usually the parameter + comes from the external world, ie, an external configuration. + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Gets the name. + + The name. + + + + Gets the value. + + The value. + + + + Gets the config value. + + The config value. + + + + Collection of + + + + + Adds the specified name. + + The name. + The value. + + + + Adds the specified name. + + The name. + The config node. + + + + Determines whether this collection contains the specified key. + + The key. + + true if yes; otherwise, false. + + + + + Adds the specified key. + + + Not implemented + + The key. + The value. + + + + Clears this instance. + + + Not implemented + + + + + Removes the specified key. + + The key. + + Not implemented + + + + + Copy the content to the specified array + + target array + target index + + Not implemented + + + + + Returns an enumerator that can iterate through a collection. + + + An + that can be used to iterate through the collection. + + + + + Gets the keys. + + The keys. + + Not implemented + + + + + Gets the values. + + The values. + + Not implemented + + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + Gets a value indicating whether this instance is fixed size. + + + true if this instance is fixed size; otherwise, false. + + + + + Gets the with the specified key. + + + + + + Gets the count. + + The count. + + + + Gets the sync root. + + The sync root. + + + + Gets a value indicating whether this instance is synchronized. + + + true if this instance is synchronized; otherwise, false. + + + + + Represents a property and the respective dependency. + + + + + Initializes a new instance of the class. + + The property info. + The dependency. + + + + Gets the property. + + The property. + + + + Gets the dependency. + + The dependency. + + + + Collection of + + + + + Finds a PropertySet the by PropertyInfo. + + The info. + + + + + Represents a 'streamable' resource. Can + be a file, a resource in an assembly. + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + + + Returns an instance of + created according to the relativePath + using itself as the root. + + + + + + + + + + Only valid for resources that + can be obtained through relative paths + + + + + + + + + + This returns a new stream instance each time it is called. + It is the responsability of the caller to dispose of this stream + + + + + + + + + + Depicts the contract for resource factories. + + + + + Used to check whether the resource factory + is able to deal with the given resource + identifier. + + + Implementors should return true + only if the given identificator is supported + by the resource factory + + + + + + + Creates an instance + for the given resource identifier + + + + + + + Creates an instance + for the given resource identifier + + + + + + + + + + + + + + + + + + Adapts a static string content as an + + + + + Enable access to files on network shares + + + + + Default implementation. + + + + + Email sender abstraction. + + + + + Sends a mail message. + + From field + To field + E-mail's subject + message's body + + + + Sends a message. + + Message instance + + + + Sends multiple messages. + + List of messages + + + + This service implementation + requires a host name in order to work + + The smtp server name + + + + Sends a message. + + If any of the parameters is null + From field + To field + e-mail's subject + message's body + + + + Sends a message. + + If the message is null + Message instance + + + + Configures the sender + with port information and eventual credential + informed + + Message instance + + + + Gets or sets the port used to + access the SMTP server + + + + + Gets the hostname. + + The hostname. + + + + Gets or sets a value which is used to + configure if emails are going to be sent asyncrhonously or not. + + + + + Gets or sets a value that specifies + the amount of time after which a synchronous Send call times out. + + + + + Gets or sets a value indicating whether the email should be sent using + a secure communication channel. + + true if should use SSL; otherwise, false. + + + + Gets or sets the domain. + + The domain. + + + + Gets or sets the name of the user. + + The name of the user. + + + + Gets or sets the password. + + The password. + + + + Gets a value indicating whether credentials were informed. + + + if this instance has credentials; otherwise, . + + + + + Defines that the implementation wants a + in order to + access other components. The creator must be aware + that the component might (or might not) implement + the interface. + + + Used by Castle Project components to, for example, + gather logging factories + + + + + Increments IServiceProvider with a generic service resolution operation. + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + General purpose class to represent a standard pair of values. + + Type of the first value + Type of the second value + + + + Constructs a pair with its values + + + + + + + List of utility methods related to dynamic proxy operations + + + + + Determines whether the specified type is a proxy generated by + DynamicProxy (1 or 2). + + The type. + + true if it is a proxy; otherwise, false. + + + + + Pendent + + + + + Initializes a new instance of the class. + + The target. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + + is null. + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + is null. + An element with the same key already exists in the object. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + is null. + The object is read-only.-or- The has a fixed size. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source is greater than the available space from to the end of the destination . + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets or sets the with the specified key. + + + + + + Gets an object containing the keys of the object. + + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + + An object containing the values in the object. + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + diff --git a/lib/Castle.DynamicProxy2.dll b/lib/Castle.DynamicProxy2.dll index 44619086ea60e1f60cf1dd9dc7fbb653948ff5f9..763a6172194c8a04922b23ab291d8b9cab55aedf 100644 GIT binary patch literal 167936 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 BWOV=l diff --git a/lib/Castle.DynamicProxy2.xml b/lib/Castle.DynamicProxy2.xml new file mode 100644 index 0000000..83bc6dc --- /dev/null +++ b/lib/Castle.DynamicProxy2.xml @@ -0,0 +1,1471 @@ + + + + Castle.DynamicProxy2 + + + + + Checks if the method is public or protected. + + + + + + + Performs some basic screening and invokes the + to select methods. + + + + + + + + + Interface describing elements composing generated type + + + + + Wraps a reference that is passed + ByRef and provides indirect load/store support. + + + + + Summary description for NewArrayExpression. + + + + + + + + + s + Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. + + + + + Provides appropriate Ldind.X opcode for + the type of primitive value to be loaded indirectly. + + + + + Inspect the base method for generic definitions + and set the return type and the parameters + accordingly + + + + + Emits a load opcode of the appropriate kind for a constant string or + primitive value. + + + + + + + Emits a load opcode of the appropriate kind for the constant default value of a + type, such as 0 for value types and null for reference types. + + + + + Emits a load indirect opcode of the appropriate type for a value or object reference. + Pops a pointer off the evaluation stack, dereferences it and loads + a value of the specified type. + + + + + + + Emits a store indirectopcode of the appropriate type for a value or object reference. + Pops a value of the specified type and a pointer off the evaluation stack, and + stores the value. + + + + + + + Summary description for PropertiesCollection. + + + + + Provides appropriate Stind.X opcode + for the type of primitive value to be stored indirectly. + + + + + Returns list of all unique interfaces implemented given types, including their base interfaces. + + + + + + + Handles error during disassembly process + + Type of the attribute being disassembled + Exception thrown during the process + usually null, or (re)throws the exception + + + + Here we try to match a constructor argument to its value. + Since we can't get the values from the assembly, we use some heuristics to get it. + a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument + b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string). + + + + + We have the following rules here. + Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that + we can convert it. + + + + + Attributes can only accept simple types, so we return null for null, + if the value is passed as string we call to string (should help with converting), + otherwise, we use the value as is (enums, integer, etc). + + + + + Base class that exposes the common functionalities + to proxy generation. + + + + + Generates a parameters constructor that initializes the proxy + state with just to make it non-null. + + This constructor is important to allow proxies to be XML serializable + + + + + + It is safe to add mapping (no mapping for the interface exists) + + + + + + + + Initializes a new instance of the class. + + Target element. This is either target type or target method for invocation types. + The type of the proxy. This is base type for invocation types. + The interfaces. + The options. + + + + Initializes a new instance of the class. + + Type of the target. + The interfaces. + The options. + + + + Generates the constructor for the class that extends + + + + + + + + + + + + + + Represents the scope of uniquenes of names for types and their members + + + + + Gets a unique name based on + + Name suggested by the caller + Unique name based on . + + Implementers should provide name as closely resembling as possible. + Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. + Implementers must return deterministic names, that is when is called twice + with the same suggested name, the same returned name should be provided each time. Non-deterministic return + values, like appending random suffices will break serialization of proxies. + + + + + Returns new, disposable naming scope. It is responsibilty of the caller to make sure that no naming collision + with enclosing scope, or other subscopes is possible. + + New naming scope. + + + + + + + + + Initializes a new instance of the class. + + The name. + Type declaring the original event being overriten, or null. + + The add method. + The remove method. + The attributes. + + + + Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue + where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. + + + + + Handles the deserialization of proxies. + + + + + Resets the used for deserialization to a new scope. + + This is useful for test cases. + + + + Resets the used for deserialization to a given . + + The scope to be used for deserialization. + By default, the deserialization process uses a different scope than the rest of the application, which can lead to multiple proxies + being generated for the same type. By explicitly setting the deserialization scope to the application's scope, this can be avoided. + + + + Gets the used for deserialization. + + As has no way of automatically determining the scope used by the application (and the application + might use more than one scope at the same time), uses a dedicated scope instance for deserializing proxy + types. This instance can be reset and set to a specific value via and . + + + + Holds objects representing methods of class. + + + + + Holds objects representing methods of class. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Used during the target type inspection process. Implementors have a chance to customize the + proxy generation process. + + + + + Invoked by the generation process to determine if the specified method should be proxied. + + The type which declares the given method. + The method to inspect. + True if the given method should be proxied; false otherwise. + + + + Invoked by the generation process to notify that a member was not marked as virtual. + + The type which declares the non-virtual member. + The non-virtual member. + + Non-virtual members cannot be proxied. This method gives an opportunity to inspect + any non-virtual member of a type that has been requested to be proxied, and if + appropriate - throw an exception to notify the caller. + + + + + Invoked by the generation process to notify that the whole process has completed. + + + + + Registers custom disassembler to handle disassembly of specified type of attributes. + + Type of attributes to handle + Disassembler converting existing instances of Attributes to CustomAttributeBuilders + + When disassembling an attribute Dynamic Proxy will first check if an custom disassembler has been registered to handle attributes of that type, + and if none is found, it'll use the . + + + + + Attributes should be replicated if they are non-inheritable, + but there are some special cases where the attributes means + something to the CLR, where they should be skipped. + + + + + Applied to the assemblies saved by in order to persist the cache data included in the persisted assembly. + + + + + Default implementation of interface producing in-memory proxy assemblies. + + + + + Abstracts the implementation of proxy type construction. + + + + + Creates a proxy type for given , using provided. + + The class type to proxy. + The proxy generation options. + The generated proxy type. + Thrown when is a generic type definition. + Thrown when is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given , implementing , using provided. + + The class type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given , implementing , using provided. + + The class type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type that proxies calls to members on , implementing , using provided. + + The interface type to proxy. + Additional interface types to proxy. + Type implementing on which calls to the interface members should be intercepted. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given that delegates all calls to the provided interceptors. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given and that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors + and uses an instance of the interface as their targets (i.e. ), rather than a class. All classes should then implement interface, + to allow interceptors to switch invocation target with instance of another type implementing called interface. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Gets or sets the that this logs to. + + + + + Gets the associated with this builder. + + The module scope associated with this builder. + + + + Initializes a new instance of the class with new . + + + + + Initializes a new instance of the class. + + The module scope for generated proxy types. + + + + Determines whether this assembly has internals visible to dynamic proxy. + + The assembly to inspect. + + + + Determines whether the specified method is internal. + + The method. + + true if the specified method is internal; otherwise, false. + + + + + Because we need to cache the types based on the mixed in mixins, we do the following here: + - Get all the mixin interfaces + - Sort them by full name + - Return them by position + + The idea is to have reproducable behavior for the case that mixins are registered in different orders. + This method is here because it is required + + + + + Summary description for ModuleScope. + + + + + The default file name used when the assembly is saved using . + + + + + The default assembly (simple) name used for the assemblies generated by a instance. + + + + + Initializes a new instance of the class; assemblies created by this instance will not be saved. + + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + Naming scope used to provide unique names to generated types and their members (usually via sub-scopes). + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Returns a type from this scope's type cache, or null if the key cannot be found. + + The key to be looked up in the cache. + The type from this scope's type cache matching the key, or null if the key cannot be found + + + + Registers a type in this scope's type cache. + + The key to be associated with the type. + The type to be stored in the cache. + + + + Gets the key pair used to sign the strong-named assembly generated by this . + + + + + + Gets the specified module generated by this scope, creating a new one if none has yet been generated. + + If set to true, a strong-named module is returned; otherwise, a weak-named module is returned. + A strong-named or weak-named module generated by this scope, as specified by the parameter. + + + + Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. + + A strong-named module generated by this scope. + + + + Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. + + A weak-named module generated by this scope. + + + + Saves the generated assembly with the name and directory information given when this instance was created (or with + the and current directory if none was given). + + + + This method stores the generated assembly in the directory passed as part of the module information specified when this instance was + constructed (if any, else the current directory is used). If both a strong-named and a weak-named assembly + have been generated, it will throw an exception; in this case, use the overload. + + + If this was created without indicating that the assembly should be saved, this method does nothing. + + Both a strong-named and a weak-named assembly have been generated. + The path of the generated assembly file, or null if no file has been generated. + + + + Saves the specified generated assembly with the name and directory information given when this instance was created + (or with the and current directory if none was given). + + True if the generated assembly with a strong name should be saved (see ); + false if the generated assembly without a strong name should be saved (see . + + + This method stores the specified generated assembly in the directory passed as part of the module information specified when this instance was + constructed (if any, else the current directory is used). + + + If this was created without indicating that the assembly should be saved, this method does nothing. + + + No assembly has been generated that matches the parameter. + + The path of the generated assembly file, or null if no file has been generated. + + + + Loads the generated types from the given assembly into this 's cache. + + The assembly to load types from. This assembly must have been saved via or + , or it must have the manually applied. + + This method can be used to load previously generated and persisted proxy types from disk into this scope's type cache, eg. in order + to avoid the performance hit associated with proxy generation. + + + + + Users of this should use this lock when accessing the cache. + + + + + Gets the strong-named module generated by this scope, or if none has yet been generated. + + The strong-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the strongly named module generated by this scope. + + The file name of the strongly named module generated by this scope. + + + + Gets the directory where the strongly named module generated by this scope will be saved, or if the current directory + is used. + + The directory where the strongly named module generated by this scope will be saved when is called + (if this scope was created to save modules). + + + + Gets the weak-named module generated by this scope, or if none has yet been generated. + + The weak-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the weakly named module generated by this scope. + + The file name of the weakly named module generated by this scope. + + + + Gets the directory where the weakly named module generated by this scope will be saved, or if the current directory + is used. + + The directory where the weakly named module generated by this scope will be saved when is called + (if this scope was created to save modules). + + + + ProxyBuilder that persists the generated type. + + + The saved assembly contains just the last generated type. + + + + + Initializes a new instance of the class. + + + + + Saves the generated assembly to a physical file. Note that this renders the unusable. + + The path of the generated assembly file, or null if no assembly has been generated. + This method does not support saving multiple files. If both a signed and an unsigned module have been generated, use the + respective methods of the . + + + + Initializes a new instance of the class. + + The hook. + + + + Initializes a new instance of the class. + + + + + Provides proxy objects for classes and interfaces. + + + + + Initializes a new instance of the class. + + Proxy types builder. + + + + Initializes a new instance of the class. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + Object proxying calls to members of on object. + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates the proxy type for class proxy with given class, implementing given and using provided . + + The base class for proxy type. + The interfaces that proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + Actual type that the proxy type will encompass. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target interface for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy without target for given interface, implementing given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Gets or sets the that this log to. + + + + + Gets the proxy builder instance used to generate proxy types. + + The proxy builder. + + + + + + + + + + + + + + + For interface proxies, this will point to the + on the target class + + + + diff --git a/lib/Castle.MicroKernel.dll b/lib/Castle.MicroKernel.dll index 9f7616cff4c90e642edfffdb72c57a41c4489131..35df07a3a7ccc81cdf0598c8573613774a8ae759 100644 GIT binary patch literal 208896 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%0D}Tok+tmYkT!ALX#^sKKiw6Q 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 LRx$983IqQaCv@m8 literal 131072 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�H*NUbM%K+J!rp*H#y#V-o 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 diff --git a/lib/Castle.MicroKernel.xml b/lib/Castle.MicroKernel.xml new file mode 100644 index 0000000..dce3fbc --- /dev/null +++ b/lib/Castle.MicroKernel.xml @@ -0,0 +1,5672 @@ + + + + Castle.MicroKernel + + + +

+ Abstract implementation of . + The implementors must only override the InternalCreate and + InternalDestroy methods in order to perform their creation and + destruction logic. + + + + + Implements the instance creation logic. The default + implementation should rely on an ordinary call to + Activator.CreateInstance(). + + + This interface is provided in order to allow custom components + to be created using a different logic, such as using a specific factory + or builder. + + The constructor for implementation has the following signature: + + + ComponentModel model, IKernel kernel, + ComponentInstanceDelegate onCreation, + ComponentInstanceDelegate onDestruction + + + The Activator should raise the events onCreation and onDestruction + in order to correctly implement the contract. Usually the best + way of creating a custom activator is by extending the existing ones. + + + + + + + + Should return a new component instance. + + + + + + Should perform all necessary work to dispose the instance + and/or any resource related to it. + + + + + + Constructs an AbstractComponentActivator + + + + + Summary description for ComponentActivatorException. + + + + + Standard implementation of . + Handles the selection of the best constructor, fills the + writable properties the component exposes, run the commission + and decommission lifecycles, etc. + + + Custom implementors can just override the CreateInstance method. + Please note however that the activator is responsible for the proxy creation + when needed. + + + + + Initializes a new instance of the class. + + + + + + + + + Attempts to dynamically load a UserControl by invoking Page.LoadControl. + There are two uses of this class. + + 1) Add a component to the Kernel and add a VirtualPath attribute specifying + the relative path of the .ascx file for the associated UserControl. (easy) + + + + <component id="BasketView" + service="Castle.ShoppingCart.IBasketView, Castle.ShoppingCart" + type="Castle.ShoppingCart.BasketView, Castle.ShoppingCart" + lifestyle="transient" + virtualPath="~/Views/BasketView.ascx" + /> + + + + 2) Precompile a UserControl and add the pre-compiled class to the Kernel. (hard) + Has not been tested with proxies. + + + + + + Initializes a new instance of the class. + + The model. + The kernel. + The on creation. + The on destruction. + + + + Creates the instance. + + The context. + The arguments. + The signature. + + + + + + + + + + Used during a component request, passed along to the whole process. + This allow some data to be passed along the process, which is used + to detected cycled dependency graphs and now it's also being used + to provide arguments to components. + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + Should return an instance of a service or property values as + specified by the dependency model instance. + It is also the responsability of + to throw an exception in the case a non-optional dependency + could not be resolved. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + Returns true if the resolver is able to satisfy this dependency. + + Creation context, which is a resolver itself + Parent resolver - normally the IHandler implementation + Model of the component that is requesting the dependency + The dependency model + true if the dependency can be satisfied + + + + Holds the scoped dependencies being resolved. + If a dependency appears twice on the same scope, we'd have a cycle. + + + + + The list of handlers that are used to resolve + the component. + We track that in order to try to avoid attempts to resolve a service + with itself. + + + + + Initializes a new instance of the class. + + The type to extract generic arguments. + The parent context. + + + + Initializes a new instance of the class. + + The handler. + The release policy. + The type to extract generic arguments. + The additional arguments. + The conversion manager. + + + + Initializes a new instance of the class. + + + + + Method used by handlers to test whether they are being resolved in the context. + + + + + This method is provided as part of double dispatch mechanism for use by handlers. + Outside of handlers, call instead. + + + + Creates a new, empty instance. + A new CreationContext should be created every time, as the contexts keeps some state related to dependency resolution. + + + + Pendent + + + + + Extends adding and + information. Th MemberInfo is only useful to provide detailed information + on exceptions. + The ComponentModel is required so we can get resolve an object that takes as a parameter itself, but + with difference model. (See IoC 51 for the details) + + + + + Exception throw when a circular dependency is detected + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is . + The class name is or is zero (0). + + + + Exception threw when a request for a component + cannot be satisfied because the component does not + exist in the container + + + + + Initializes a new instance of the class. + + The name. + + + + Initializes a new instance of the class. + + The service. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Exception threw when there is a problem + registering a component + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Exception threw by Kernel operations that failed + for some reason. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Exception that is thrown when a error occurs during the Event Wiring process + + + + + Base exception to be used by facilities. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Facility to allow components to dynamically subscribe to events offered by + other components. We call the component that offers events publishers and + the components that uses them, subscribers. + + + A component that wish to subscribe to an event must use the external configuration + adding a node subscribers on the publisher. This node can have multiple entries using the + subscriber node. + + + This example shows two simple components: one is the event publisher and the other is the + subscriber. The subscription will be done by the facility, using the publisher associated configuration. + The Publisher class: + + public class SimplePublisher + { + public event PublishEventHandler Event; + + public void Trigger() + { + if (Event != null) + { + Event(this, new EventArgs()); + } + } + } + + The Subscriber class: + + public class SimpleListener + { + private bool _listened; + private object _sender; + + public void OnPublish(object sender, EventArgs e) + { + _sender = sender; + _listened = sender != null; + } + + public bool Listened + { + get { return _listened; } + } + + public object Sender + { + get { return _sender; } + } + } + + The configuration file: + + + + + + + + + + + + + + + + + + ]]> + + + + + + Base class for facilities. + + + + + Unit of extension. A facility should use + the extension points offered by the kernel + to augment its functionality. + + + + + + + + + + + + + + + + + The custom initialization for the Facility. + + It must be overriden. + + + + Initializes the facility. First it performs the initialization common for all + facilities, setting the and the + . After it, the Init method is invoked + and the custom initilization is perfomed. + + + + + + + Terminates the Facility, invokes the method and sets + the Kernel to a null reference. + + + + + Performs the tasks associated with freeing, releasing, or resetting + the facility resources. + + It can be overriden. + + + + Gets the where the facility is registered. + + The . + + + + Gets the facility configuration. + + The representing + the facility configuration. + + + + Overriden. Initializes the facility, subscribing to the , + , Kernel events. + + + + + Checks if the component we're dealing is a publisher. If it is, + parses the configuration (the subscribers node) getting the event wiring info. + + The component model. + Invalid and/or a error in the configuration + + + + Checks if the component we're dealing is a publisher. If it is, + iterates the subscribers starting them and wiring the events. + + The component model. + The instance representing the component. + When the subscriber is not found +
or
+ The handler method isn't found +
or
+ The event isn't found +
+
+ + + Represents the information about an event. + + + + + Initializes a new instance of the class. + + Name of the event. + The name of the handler method. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Gets the name of the event. + + The name of the event. + + + + Gets the handler method name. + + The handler. + + + + + + + + + Activates a object connecting to the remote server. + + + + + Initializes a new instance of the class. + + The model. + The kernel. + The oncreation event handler. + The ondestruction event handler. + + + + Activates a client connecting to the remote server, enforcing the uri and the server activation. + + + + + Initializes a new instance of the class. + + The model. + The kernel. + The oncreation event handler. + The ondestruction event handler. + + + + Activates a client connecting to the remote server through the . + + + + + Initializes a new instance of the class. + + The model. + The kernel. + The oncreation envent handler. + The ondestruction event handler. + + + + Activates a client activated object. + + + + + Initializes a new instance of the class. + + The model. + The kernel. + The oncreation event handler. + The ondestruction event handler. + + + + Activates and publishes a server object. + + + + + Initializes a new instance of the class. + + The model. + The kernel. + The oncreation event handler. + The ondestruction event handler. + + + + Facility to allow the communication with remote kernel, using the .NET Remoting infraestructure. + + + TODO + + + TODO + + + + + Used for client side (Expand explanation) + + + + + Used for server side. + Holds the local registry + + + + + Used for client side. + Holds a remote proxy to the server registry + + + + + Constructs a RemotingFacility + + + + + Performs the tasks associated with freeing, releasing, or resetting + the facility resources. + + It can be overriden. + + + + Inspects the model looking for remote component configuration. If found, + do the component Remoting configuration. + + + + + Implementors must inspect the component for + a given information or parameter. + + + + + Usually the implementation will look in the configuration property + of the model or the service interface, or the implementation looking for + something. + + The kernel instance + The component model + + + + Initializes a new instance of the class. + + The converter. + if set to true is a server. + if set to true is a client. + The base URI. + The remote registry. + The local registry. + + + + Client components are not created by the container + so there's no point collecting constructor dependencies + + + + + + Used in case of generics: + + + + + + + For each new component registered, + some components in the WaitingDependency + state may have became valid, so we check them + + + + + Request the component instance + + + + + + Represents a concern that will be applied to a component instance + during commission or decomission phase. + + + + + Implementors should act on the instance in response to + a decomission or commission phase. + + The model. + The component. + + + + Selects one or both of component name and type, for given method + called on given typed factory type. + When component should be requested by type only, + componentName should be null. + When component should be requested by name only, + componentType should be null. + + + + + + + + + + Performs actual invocation of typed factory method. + + + + + + Summary description for FactoryInterceptor. + + + + + Releases components passed as arguments from the container. + + + + + resolves componet selected by given from the container + + + + + Summary description for TypedFactoryFacility. + + + + + Marks the component as typed factory. + + + + + + Only interfaces are legal to use as typed factories. Methods with out parameters are not allowed. + When registering component as typed factory no implementation should be provided (in case there is any it will be ignored). + Typed factories rely on set internally, so users should not set interceptor selectors explicitly; + otherwise the factory will not function correctly. + + + + + Implements the basis of + + + + + Contract for the IHandler, which manages an + component state and coordinates its creation + and destruction (dispatching to activators, lifestyle managers) + + + + + Initializes the handler with a reference to the + kernel. + + + + + + Implementors should return a valid instance + for the component the handler is responsible. + It should throw an exception in the case the component + can't be created for some reason + + + + + + Implementors should dispose the component instance + + + true if destroyed. + + + + Dictionary of String/object used to + associate data with a component dependency. + For example, if you component SmtpServer depends on + host and port, you can add those to this + dictionary and the handler will be able to use them. + + + TODO: Document this + + + + + TODO: Document this + + + + + + TODO: Document this + + + + + + + Tests whether the handler is already being resolved in given context. + + + + + Gets the state of the handler + + + + + Gets the model of the component being + managed by this handler. + + + + + The serivce that this handler handles + + + + + Allow to track state changes of a handler that is modified directly. + This can happen if the client calls AddCustomDependencyValue or + RemoveCustomDependencyValue + + + + + Might be implemented by a handler + so it can expose access to dependency information + which is used to construct meaningful error messages + + + + + Returns human readable list of dependencies + this handler is waiting for. + list of the dependecies that was already checked, used to avoid cycles. + + + + + Dictionary of Type to a list of + + + + + Dictionary of key (string) to + + + + + Custom dependencies values associated with the handler + + + + + Lifestyle manager instance + + + + + Constructs and initializes the handler + + + + + + Saves the kernel instance, subscribes to + event, + creates the lifestyle manager instance and computes + the handler state. + + + + + + Returns an instance of the component this handler + is responsible for + + + + + + + Should be implemented by derived classes: + returns an instance of the component this handler + is responsible for + + + + + + + + disposes the component instance (or recycle it). + + + + + + + Should be implemented by derived classes: + disposes the component instance (or recycle it) + + + true if destroyed. + + + + TODO: Pendent + + + + + + + TODO: Pendent + + + + + + + TODO: Pendent + + + + + + Returns human readable list of dependencies + this handler is waiting for. + + + + + + Creates an implementation of based + on and invokes + to initialize the newly created manager. + + + + + + + Checks if the handler is able to, at very least, satisfy + the dependencies for the constructor with less parameters + + + For each non*optional dependency, the implementation will invoke + + + + + + Invoked by + in order to check if a dependency can be satisfied. + If not, the handler is set to a 'waiting dependency' state. + + + This method registers the dependencies within the correct collection + or dictionary and changes the handler state to + + + + + + + Invoked by the kernel + when one of registered dependencies were satisfied by + new components registered. + + + Handler for the event + + + + + + Invoked when the container receives a parent container reference. + + + This method implementation checks whether the parent container + is able to supply the dependencies for this handler. + + + + + + + Handler for the event + + + + + + + Gets the handler state. + + + + + Gets the component model. + + + + + + + + + + Summary description for DefaultGenericHandler. + + + TODO: Consider refactoring AbstractHandler moving lifestylemanager + creation to DefaultHandler + + + + + Initializes a new instance of the class. + + + + + + Clone some of the parent componentmodel properties to the generic subhandler. + + + The following properties are copied: + + + The + + + The + + + + the subhandler + + + + Summary description for DefaultHandler. + + + + + Initializes a new instance of the class. + + + + + + Returns an instance of the component this handler + is responsible for + + + + + + + + disposes the component instance (or recycle it) + + + true if destroyed + + + + Summary description for DefaultHandlerFactory. + + + + + Extension point to allow the developer + to use his implementation of + + + + + Summary description for HandlerException. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Possible states for a IHandler instance + + + + + The component can be requested + + + + + The component can not be requested + as it still depending on a external + dependency not yet available + + + + + + + + + + + + Redirects resolution to the main resolver, and if not found uses + the parent handler. + + + + + Initializes a new instance of the class. + + The parent handler. + The child resolver. + + + + Summary description for DisposalConcern. + + + + + Summary description for InitializationConcern. + + + + + Summary description for SupportInitializeConcern. + + + + + Pool implementation contract. + + + + + Implementors should return a component instance. + + + + + + Implementors should release the instance or put it + on the pool + + + + + + Initializes the pool to a initial size by requesting + n components and then releasing them. + + + + + Summary description for AbstractLifestyleManager. + + + + + The ILifestyleManager implements + a strategy for a given lifestyle, like singleton, perthread + and transient. + + + The responsability of ILifestyleManager + is only the management of lifestyle. It should rely on + to obtain a new component instance + + + + + Initializes the ILifestyleManager with the + + + + + + + + + Implementors should return the component instance based + on the lifestyle semantic. + + + + + + Implementors should release the component instance based + on the lifestyle semantic, for example, singleton components + should not be released on a call for release, instead they should + release them when disposed is invoked. + + + + + + Summary description for PerThreadLifestyleManager. + + + + + + + + + + per thread LifestyleManager implementation compatibile with Silverlight. + + + + + + + + + + Implements a Lifestyle Manager for Web Apps that + create at most one object per web request. + + + + + Implements a Poolable Lifestyle Manager. + + + + + Summary description for SingletonLifestyleManager. + + + + + Summary description for TransientLifestyleManager. + + + + + Inspects the component configuration and the type looking for a + definition of component activator type. The configuration preceeds whatever + is defined in the component. + + + This inspector is not guarantee to always set up an component activator type. + If nothing could be found it wont touch the model. In this case is up to + the kernel to establish a default component activator for components. + + + + + Seaches for the component activator in the configuration and, if unsuccessful + look for the component activator attribute in the implementation type. + + The kernel instance + The model instance + + + + Reads the attribute "componentActivatorType" associated with the + component configuration and verifies it implements the + interface. + + + If the type does not implement the proper interface + + + + + + + Check if the type expose one of the component activator attributes + defined in Castle.Core namespace. + + + + + + Validates that the provide type implements IComponentActivator + + The custom component activator. + + + + Inspects the component configuration and type looking for information + that can influence the generation of a proxy for that component. + + We specifically look for useSingleInterfaceProxy and marshalByRefProxy + on the component configuration or the + attribute. + + + + + + Seaches for proxy behavior in the configuration and, if unsuccessful + look for the attribute in + the implementation type. + + + + + Reads the proxy behavior associated with the + component configuration/type and applies it to the model. + + + If the conversion fails + + + + + + + Returns a instance if the type + uses the attribute. Otherwise returns null. + + + + + + Uses the ConfigurationStore registered in the kernel to obtain + an associated with the component. + + + + + Queries the kernel's ConfigurationStore for a configuration + associated with the component name. + + + + + + + Check for a node 'parameters' within the component + configuration. For each child it, a ParameterModel is created + and added to ComponentModel's Parameters collection + + + + + Inspect the configuration associated with the component + and populates the parameter model collection accordingly + + + + + + + This implementation of + collects all available constructors and populates them in the model + as candidates. The Kernel will pick up one of the candidates + according to a heuristic. + + + + + Only to hold internal constants and get rid of + magic numbers and hardcode names. + + + + + Inspect the component for InterceptorAttribute and + the configuration for the interceptors node + + + + + Inspects the type looking for interfaces that constitutes + lifecycle interfaces, defined in the Castle.Model namespace. + + + + + Checks if the type implements and or + interfaces. + + + + + + + Inspects the component configuration and the type looking for a + definition of lifestyle type. The configuration preceeds whatever + is defined in the component. + + + This inspector is not guarantee to always set up an lifestyle type. + If nothing could be found it wont touch the model. In this case is up to + the kernel to estabish a default lifestyle for components. + + + + + Seaches for the lifestyle in the configuration and, if unsuccessful + look for the lifestyle attribute in the implementation type. + + + + + Reads the attribute "lifestyle" associated with the + component configuration and tries to convert to + enum type. + + + + + Check if the type expose one of the lifestyle attributes + defined in Castle.Model namespace. + + + + + Base for inspectors that want configuration associated with methods. + For each child a is created + and added to ComponentModel's methods collection + + + Implementors should override the return + the name of the node to be inspected. For example: + + + + + ]]> + + + + + + This implementation of + collects all potential writable puplic properties exposed by the component + implementation and populates the model with them. + The Kernel might be able to set some of these properties when the component + is requested. + + + + + Initializes a new instance of the class. + + + + + Adds the properties as optional dependencies of this component. + + + + + + + Summary description for DefaultComponentModelBuilder. + + + + + Implementors must construct a populated + instance of ComponentModel by inspecting the component + and|or the configuration. + + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + Removes the specified contributor + + + + + + Initializes a new instance of the class. + + The kernel. + + + + Constructs a new ComponentModel by invoking + the registered contributors. + + + + + + + + + + "To give or supply in common with others; give to a + common fund or for a common purpose". The contributor + should inspect the component, or even the configuration + associated with the component, to add or change information + in the model that can be used later. + + + + + + Removes the specified contributor + + + + + + Initializes the default contributors. + + + + + Gets the contributors. + + The contributors. + + + + Select the appropriate interecptors based on the application specific + business logic + + + + + Select the appropriate intereceptor references. + The intereceptor references aren't neccessarily registered in the model.Intereceptors + + The model to select the interceptors for + The intereceptors for this model (in the current context) or a null reference + + If the selector is not interested in modifying the interceptors for this model, it + should return a null reference and the next selector in line would be executed (or the default + model.Interceptors). + If the selector return a non null value, this is the value that is used, and the model.Interectors are ignored, if this + is not the desirable behavior, you need to merge your interceptors with the ones in model.Interecptors yourself. + + + + + Determain whatever the specified has interecptors. + The selector should only return true from this method if it has determained that is + a model that it would likely add interceptors to. + + The model + Whatever this selector is likely to add intereceptors to the specified model + + + + Defines the contract used by the kernel + to obtain proxies for components. The implementor + must return a proxied instance that dispatch + the invocation to the registered interceptors in the model + + + + + Implementors must create a proxy based on + the information exposed by ComponentModel + + The kernel instance + The component model + The component instance to be proxy (only required in some cases) + array of parameters to the constructor (if any) + The creation context + proxy instance + + + + Implementor should check the component model + and determine if the caller must pass on the component + instance to the proxy + + The kernel instance + The component model + true if an instance must be passed to + + + + Add the selector to the list of selectors that can affect interecptors decisions + in the container. + + + + + Determains whatever we need to create a proxy for this model + + + + + + + Used during the target type inspection process. + Implementors have a chance to interfere in the + proxy generation process + + + + + Invoked by the generation process to know if + the specified member should be proxied + + + + + + + + Invoked by the generation process to notify that a + member wasn't marked as virtual. + + + + + + + Invoked by the generation process to notify + that the whole process is completed. + + + + + This is a placeholder implementation of . + + + The decision to supply no implementation for + is supported by the fact that the MicroKernel should be a thin + assembly with the minimal set of features, although extensible. + Providing the support for this interface would obligate + the user to import another assembly, even if the large majority of + simple cases, no use use of interceptors will take place. + If you want to use however, see the Windsor container. + + + + + Holds the keys used by the proxy factories. + + + + + Key used to supply custom proxy options. + + + + + Represents options to configure proxies. + + + + + Initializes a new instance of the class. + + + + + Adds the additional interfaces to proxy. + + The interfaces. + + + + Adds the additional mix ins to integrate. + + The mix ins. + + + + Equalses the specified obj. + + The obj. + true if equal. + + + + Gets the hash code. + + + + + + Gets or sets the proxy hook. + + + + + Gets or sets the interceptor selector. + + + + + Determines if the proxied component uses a target. + + + + + Determines if the proxied component can change targets. + + + + + Determines if the proxied component should only include + the service interface. + + + + + Determines if the interface proxied component should inherit + from + + + + + Gets the additional interfaces to proxy. + + The interfaces. + + + + Gets the mix ins to integrate. + + The interfaces. + + + + Helper support for proxy configuration. + + + + + Obtains the associated with the . + + The component model. + true if the options should be created if not present. + The associated proxy options for the component model. + + + + Sets the lifestyle to the specified . + + The type. + + + + + Assign a custom lifestyle type, that implements . + + Type of the custom lifestyle. + + + + + Assign a custom lifestyle type, that implements . + + The type of the custom lifestyle + + + + + Describes a set of components to register in the kernel. + + + + + Describes all the types based on basedOn. + + The base type. + + + + + Describes all the types based on type T. + + The base type. + + + + + Describes any types that are supplied. + + + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from an assembly containing the type. + + The type belonging to the assembly. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Describes a related group of components to register in the kernel. + + + + + Prepares to register types from an assembly. + + The assembly name. + The corresponding + + + + Prepares to register types from an assembly. + + The assembly. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Prepares to register types from a list of types. + + The list of types. + The corresponding + + + + Delegate for custom registration configuration. + + The component registration. + Not uaed. + + + + Describes how to register a group of related types. + + + + + The contract for all registrations with the kernel. + + + + + Performs the registration in the . + + The kernel. + + + + Initializes a new instance of the BasedOnDescriptor. + + + + + Assigns a conditional predication which must be satisfied. + + The predicate to satisfy. + + + + + Assigns a conditional predication which must not be satisfied. + + The predicate not to satisify. + + + + + Allows customized configurations of each matching type. + + The configuration action. + + + + + Allows customized configurations of each matching type. + + The configuration action. + + + + + Allows customized configurations of each matching type that is + assignable to . + + The type assignable from. + The configuration action. + + + + + Allows customized configurations of each matching type that is + assignable to . + + The type assignable from. + The configuration action. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a new type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + Gets the type all types must be based on. + + + + + Gets the service descriptor. + + + + + Describes a configuration. + + + + + Initializes a new instance of the ConfigureDescriptor. + + The + The configuration action. + + + + Initializes a new instance of the ConfigureDescriptor. + + The + The base type to match. + The configuration action. + + + + Allows customized configurations of each matching type. + + The configuration action. + + + + + Allows customized configurations of each matching type. + + The configuration action. + + + + + Allows customized configurations of each matching type that is + assignable to . + + The type assignable from. + The configuration action. + + + + + Allows customized configurations of each matching type that is + assignable to . + + The type assignable from. + The configuration action. + + + + + Performs the component configuration. + + The component registration. + + + + Selects a set of types from an assembly. + + + + + Describes the source of types to register. + + + + + Allows a type to be registered multiple times. + + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type. + + The base type. + The descriptor for the type. + + + + Returns the descriptor for accepting a type based on a condition. + + The accepting condition. + The descriptor for the type. + + + + Selects an existing set of types to register. + + + + + Describes how to select a types service. + + + + + Uses the base type matched on. + + + + + + Uses the first interface of a type. + + + + + + Uses to lookup the sub interface. + For example: if you have IService and + IProductService : ISomeInterface, IService, ISomeOtherInterface. + When you call FromInterface(typeof(IService)) then IProductService + will be used. Useful when you want to register _all_ your services + and but not want to specify all of them. + + + + + + + Uses base type to lookup the sub interface. + + + + + + Assigns a custom service selection strategy. + + + + + + + Assigns the supplied service types. + + + + + + + This is a workaround for a CLR bug in + which GetInterfaces() returns interfaces + with no implementations. + + Type of the service. + + + + + Constructs the descriptor with name and value. + + The attribute name. + The attribute value. + + + + Constructs the descriptor with name. + + The component. + The attribute name. + + + + Builds the with value. + + The attribute value. + The + + + + Factory for creating objects. + + + + + Creates a component registration for the + + Type of the service. + The component registration. + + + + Creates a component registration for the + + Types of the service. + The component registration.B + + + + Creates a component registration for the + + Types of the service. + The component registration.B + + + + Creates a component registration for the service type. + + The service type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Creates a component registration for the service types. + + The primary service type. + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Create a component registration for an exisiting + + The component model. + The component registration. + + + + Determines if the component service is already registered. + + The kernel. + The component model. + true if the service is already registered. + + + + Creates a predicate to check if a component is in a namespace. + + The namespace. + true if the component type is in the namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Creates a predicate to check if a component shares a namespace with another. + + The component type to test namespace against. + true if the component is in the same namespace. + + + + Delegate to filter component registration. + + The kernel. + The component model. + true if accepted. + + + + Registration for a single type as a component with the kernel. + + You can create a new registration with the factory. + + The service type + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with an existing . + + + + + With the overwrite. + + + + + + Change the name of this registration. + This will be the key for the component in the kernel. + + If not set, the of the + will be used as the key to register the component. + + The name of this registration. + + + + + Sets the concrete type that implements the service to . + + If not set, the will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Sets the concrete type that implements the service to . + + If not set, the will be used as the implementation for this component. + + The type that is the implementation for the service. + + + + + Assigns an existing instance as the component for this registration. + + The component instance. + + + + + Registers the service types on behalf of this component. + + The types to forward. + + + + + Registers the service types on behalf of this component. + + The forwarded type. + The component registration. + + + + Registers the service types on behalf of this component. + + The first forwarded type. + The second forwarded type. + The component registration. + + + + Registers the service types on behalf of this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The component registration. + + + + Registers the service types on behalf of this component. + + The first forwarded type. + The second forwarded type. + The third forwarded type. + The fourth forwarded type. + The component registration. + + + + Registers the service types on behalf of this component. + + The types to forward. + + + + + Set a custom which creates and destroys the component. + + + + + + Sets for this component. + + The extended properties. + + + + + Sets for this component. + + The extendend properties as key/value pairs. + + + + + Specify custom dependencies using . + + Use to specify the components + this component should be resolved with. + + The dependencies. + + + + + Uses a dictionary of key/value pairs, to specify custom dependencies. + + Use to specify the components + this component should be resolved with. + + The dependencies. + + + + + Uses an (anonymous) object as a dictionary, to specify custom dependencies. + + Use to specify the components + this component should be resolved with. + + The dependencies. + + + + + Obsolete, use instead. + + The dependencies. + + + + + Obsolete, use instead. + + The dependencies. + + + + + Obsolete, use instead. + + The dependencies. + + + + + Override (some of) the services that this component needs. + Use to create an override. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. + The corresponding value is the key of an other component registered to the kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. + The corresponding value is the key of an other component registered to the kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Override (some of) the services that this component needs, using an (anonymous) object as a dictionary. + + Each key represents the service dependency of this component, for example the name of a constructor argument or a property. + The corresponding value is the key of an other component registered to the kernel, and is used to resolve the dependency. + + To specify dependencies which are not services, use + + The service overrides. + + + + + Set configuration parameters with string or values. + + The parameters. + + + + + Creates an attribute descriptor. + + The attribute key. + + + + + Apply more complex configuration to this component registration. + + The config nodes. + + + + + Apply more complex configuration to this component registration. + + The configuration . + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptors for this component. + + The interceptors. + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Set the interceptor for this component. + + + + + + Sets the interceptor selector for this component. + + + + + + + Marks the component as startable. + + + Be sure that you first added the + to the kernel, before registering this component. + + + + Assigns the start method for the startable. + + The start method. + + Be sure that you first added the + to the kernel, before registering this component. + + + + Assigns the stop method for the startable. + + The stop method. + + Be sure that you first added the + to the kernel, before registering this component. + + + + Stores a set of which will be invoked when the component + is created and before it's returned from the container. + + A set of actions to be executed right after the component is created and before it's returned from the container. + + + + Allows custom dependencies to by defined dyncamically. + + The delegate used for providing dynamic parameters. + + + + + Allows custom dependencies to by defined dyncamically with releasing capability. + + The delegate used for providing dynamic parameters. + + + + + Marks the components with one or more actors. + + The component actors. + + + + + Assigns a conditional predication which must be satisfied. + + The component will only be registered into the kernel + if this predicate is satisfied (or not assigned at all). + + The predicate to satisfy. + + + + + Assigns a conditional predication which must not be satisfied. + + The component will only be registered into the kernel + if this predicate is not satisfied (or not assigned at all). + + The predicate not to satisify. + + + + + Registers this component with the . + + The kernel. + + + + Adds the attribute descriptor. + + The key. + The value. + + + + + Adds the descriptor. + + The descriptor. + + + + + Uses a factory method to instantiate the component. + Requires the to be installed. + + Implementation type + Factory method + + + + + Uses a factory method to instantiate the component. + Requires the to be installed. + + Implementation type + Factory method + + + + + Uses a factory method to instantiate the component. + Requires the to be installed. + + Implementation type + Factory method + + + + + Uses a factory to instantiate the component + + Factory type. This factory has to be registered in the kernel. + Implementation type. + Factory invocation + + + + + The name of the component. Will become the key for the component in the kernel. + + To set the name, use . + + If not set, the of the + will be used as the key to register the component. + + The name. + + + + The type of the service, the same as . + + This is the first type passed to . + + The type of the service. + + + + Gets the forwarded service types on behalf of this component. + + Add more types to forward using . + + The types of the forwarded services. + + + + The concrete type that implements the service. + + To set the implementation, use . + + The implementation of the service. + + + + Set proxy for this component. + + The proxy. + + + + Set the lifestyle of this component. + For example singleton and transient (also known as 'factory'). + + The with lifestyle. + + + + Helper wrapper around Converter + + + + + + Helper factory class + + + + + + Helper factory class + + + + + + Helper factory class + + + + + + A non-generic . + + You can create a new registration with the factory. + + + + + Represents a configuration child. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a configuration attribute. + + + + + Applies the configuration node. + + The configuration. + + + + Create a with name. + + The attribute name. + The new + + + + Represents a named attribute. + + + + + Builds the with name/value. + + The attribute value. + The new + + + + Builds the with name/value. + + The attribute value. + The new + + + + Represents a configuration child. + + + + + Create a with name. + + The child name. + The new + + + + Represents a named child. + + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/value. + + The child value. + The new + + + + Builds the with name/config. + + The child configuration. + The new + + + + Builds the with name/config. + + The child nodes. + The new + + + + Applies the configuration node. + + The configuration. + + + + Represents a simple child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a complex child node. + + + + + Applies the configuration node. + + The configuration. + + + + Represents a compound child node. + + + + + Applies the configuration node. + + The configuration. + + + + Adds the actions to ExtendedProperties. + + + + + + Represents a configuration parameter. + + + + + Create a with key. + + The parameter key. + The new + + + + Gets the parameter key. + + + + + Gets the parameter value. + + + + + Gets the parameter configuration. + + + + + Represents a parameter key. + + + + + Builds the with key/value. + + The parameter value. + The new + + + + Builds the with key/config. + + The parameter configuration. + The new + + + + The parameter key name. + + + + + Represents a key/value pair. + + + + + Create a with key. + + The property key. + The new + + + + Gets the property key. + + + + + Gets the property value. + + + + + Represents a property key. + + + + + Builds the with key/value. + + The property value. + The new + + + + The property key name. + + + + + Represents a service override. + + + + + Creates a with key. + + The service override key. + The new + + + + Gets the optional value type specifier. + + + + + Represents a service override key. + + + + + Builds the with key/value. + + The service overeride value. + The new + + + + Builds the with key/values. + + The service overeride values. + The new + + + + Builds the with key/values. + + The service overeride values. + The new + The value type. + + + + Builds the with key/values. + + The service overeride values. + The new + + + + Builds the with key/values. + + The service overeride values. + The new + The value type. + + + + Gets the service override key name. + + + + + Summary description for IReleasePolicy. + + + + + Only tracks components that have decommission steps + registered or have pooled lifestyle. + + + + + No tracking of component instances are made. + + + + + Initializes a new instance of the class. + + + + + Handle dependencies of services in the format of typed arrays. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services as typed arrays. + + Note that it will take precedence over service override for arrays defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ArrayResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IService[] services) + { + } + } + + + + + + Handle dependencies of services in the format of generic IList. + + + This is a complimentary implementation + that is capable of satisfying dependencies of services generic IList. + + Note that it will take precedence over service override for lists defined + on the configuration. + + + + In order to install the resolver: + + var kernel = new DefaultKernel(); + kernel.Resolver.AddSubResolver(new ListResolver(kernel)); + + + + To use it, assuming that IService is on the container: + + + + public class Component + { + public Component(IList<IService> services) + { + } + } + + + + + + Default implementation for . + This implementation is quite simple, but still should be useful + for 99% of situations. + + + + + Implementors should use a strategy to obtain + valid references to properties and/or services + requested in the dependency model. + + + + + This method is called with a delegate for firing the + IKernelEvents.DependencyResolving event. + + The delegate used to fire the event + + + + Registers a sub resolver instance + + The subresolver instance + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Initializes a new instance of the class. + + The kernel. + + + + Initializes this instance with the specified dependency delegate. + + The dependency delegate. + + + + Registers a sub resolver instance + + The subresolver instance + + + + Unregisters a sub resolver instance previously registered + + The subresolver instance + + + + Returns true if the resolver is able to satisfy the specified dependency. + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + true if the dependency can be satisfied + + + + Try to resolve the dependency by checking the parameters in + the model or checking the Kernel for the requested service. + + + The dependency resolver has the following precedence order: + + + The dependency is checked within the + + + The dependency is checked within the instance for the component + + + The dependency is checked within the registered s + + + Finally the resolver tries the normal flow + which is using the configuration + or other component to satisfy the dependency + + + + Creation context, which is a resolver itself + Parent resolver + Model of the component that is requesting the dependency + The dependency model + The dependency resolved value or null + + + + Extracts the component name from the a ref strings which is + ${something} + + + + + + + + This method rebuild the context for the parameter type. + Naive implementation. + + + + + Summary description for DependencyResolverException. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Provides lazy registration capabilities to the container. + + + When a component is requested from a container and it was not registered, + container loads up all registered implementers of this interface and asks + them in turn whethere they can provide that component, until it finds one that will. + + + + + Used by container to allow the loader gister component for given and to the container at the time when it is requested + + Key of the requested component or null + Type of requested service or null + Registration that registers component for given key and/or service or null. + + While either key or service can be null reference it is guaranteed that at least one of them will not be null. + When implementer opts in to provide the requested component (by returning not-null registration) it is required + to register component for requested key/service combination (when one of the elements is null, it should be ignored as well). + When implementer does not want to register the requested component it nust return null. + + + + + This implementation of + does not try to obtain an external configuration by any means. + Its only purpose is to serve as a base class for subclasses + that might obtain the configuration node from anywhere. + + + + + A subsystem is used by the MicroKernel to deal + with a specific concern. + + + + + Initializes the subsystem + + + + + + Should perform the termination + of the subsystem instance. + + + + + The contract used by the kernel to obtain + external configuration for the components and + facilities. + + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a bootstrap component key + + item key + Configuration node + + + + Adds the child container configuration. + + The container's name. + The config. + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns all configuration nodes for facilities + + + + + + Returns all configuration nodes for components + + + + + + Returns all configuration nodes for bootstrap components + + + + + + Gets the child containers configuration nodes. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Associates a configuration node with a facility key + + item key + Configuration node + + + + Associates a configuration node with a component key + + item key + Configuration node + + + + Associates a configuration node with a bootstrap component key + + + + + Adds the child container configuration. + + The key. + The config. + + + + Returns the configuration node associated with + the specified facility key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified child container key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + item key + + + + + Returns the configuration node associated with + the specified component key. Should return null + if no association exists. + + + + + + + Returns all configuration nodes for facilities + + + + + + Returns all configuration nodes for bootstrap components + + + + + + Returns all configuration nodes for child containers + + + + + + Returns all configuration nodes for components + + + + + + Base implementation of + + + + + Implements a conversion logic to a type of a + set of types. + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type. + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + + + Should perform the conversion from the + string representation specified to the type + specified. + + + + + + + + Should perform the conversion from the + configuration node specified to the type + specified. + + + + + + + + Returns true if this instance of ITypeConverter + is able to handle the specified type with the specified + configuration + + + + + + The default behavior is to just pass it to the normal CanHadnleType + peeking into the configuration is used for some advanced functionality + + + + + Initializes a new instance of the class. + + + + + This interface is needed because we want to isolate ourself from + the generic parameters, so we can work type safe inside the implementations, + and still call from non generic types outside. + + + + + Initializes a new instance of the class. + + + + + Looks for a on the type to be converted. + If found, the TypeConverter defined by the attribute is used to perform the conversion. + + + + + Marker interface that signals that a converter + depends on IKernel to be able to perform + the conversion. + + + + + Attempts to utilize an existing for conversion + + + + + Creates the target type instance. + + The type. + The configuration. + + + + + Chooses the first non default constructor. Throws an exception if more than + one non default constructor is found + + + The chosen constructor, or null if none was found + + + + Converts the constructor parameters. + + The constructor. + The configuration. + + + + + Converts the property values. + + The instance. + The type. + The configuration. + + + + Finds the child (case insensitive). + + The config. + The name. + + + + + Gets the conversion manager. + + The conversion manager. + + + + Converts a string representation to an enum value + + + + + Implements all standard conversions. + + + + + Convert a type name to a Type instance. + + + + + Summary description for ConverterException. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Declares a type as being convertible by a and optionally defines the converter to be used + + + + + Defines the to be used to convert the type + + + + + Defines the to be used to convert the type + + + + + + Composition of all available conversion managers + + + + + Establish a composition interface and a subsystem. + Implementors should delegate the conversion to + a instance of a type converter. + + + + + Register a type converter instance. + + + + + + Method finds the next biggest node + It assumes Add puts lesser nodes on the right + + + + Node's left + + + Node's right + + + Node's parent + + + DA Linked List + + + + Creates a ComponentName using a name pattern like + "service:key=value,key2=value2" + + Complete name + + + + Creates a ComponentName with specified service and + properties. + + Service name + Property list. + + + + Serialization constructor. + + + + + + + Parses the full name extracting the service and properties. + + Full name. + + + + Sets up the service. Can be empty but can't be null. + + + + + + Parses and validate a properties list string like + "key=value,key2=value2" and so on. + + Property list. + + + + Validates a properties IDictionary. + + Property list. + + + + Default implementation. + Keeps services map as a simple hash table. + Keeps key map as a list dictionary to maintain order. + Does not support a query string. + + + + + Contract for SubSystem that wishes to keep and coordinate + component registration. + + + + + Implementors should register the key and service pointing + to the specified handler + + + + + + + Unregister the handler by the given key + + + + + + Unregister the handler by the given service + + + + + + Returns true if there is a component registered + for the specified key + + + + + + + Returns true if there is a component registered + for the specified service + + + + + + + Returns the associated with + the specified key. + + + + + + + Returns an array of that + satisfies the specified query. + + + + + + + Returns the associated with + the specified service. + + + + + Returns the associated with + the specified key with the service type. + + It is expected that this will be used mainly to resolve a generic service + by its key. + + + + + + Returns an array of associated with + the specified service. + + + + + + + Returns all registered. + + + + + + Return s where components are compatible + with the specified service. + + + + + + + List of handler by key + + + + + List of handler by service + + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Returns the number of components registered. + + + + + Associates a with + the specified service + + + + + Associates a with + the specified key + + + + + Map(String, IHandler) to map component keys + to + Items in this dictionary are sorted in insertion order. + + + + + Map(Type, IHandler) to map a service + to . + If there is more than a single service of the type, only the first + registered services is stored in this dictionary. + It serve as a fast lookup for the common case of having a single handler for + a type. + + + + + Initializes a new instance of the class. + + + + + Implementors of this interface allow to extend the way the container perform + component resolution based on some application specific business logic. + + + This is the sibling interface to . + This is dealing strictly with root components, while the is dealing with + dependent components. + + + + + Whatever the selector has an opinion about resolving a component with the + specified service and key. + + The service key - can be null + The service interface that we want to resolve + + + + Select the appropriate handler from the list of defined handlers. + The returned handler should be a member from the array. + + The service key - can be null + The service interface that we want to resolve + The defined handlers + The selected handler, or null + + + + When requesting a component by service, KeySearchNamingSubSystem first + determines if more than one component has been registered for that service. + If not, Default resolution occurs. If so, all of the registered keys for + that service are processed through the provided Predicate to determine which + key to use for service resolution. If no Predicate matches, the default + resolution occurs. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The key predicate. + + + + Registers the given handler with the give key. + + The key. + The handler. + + + + Unregisters the handler associated with the given key + + The key. + + + + Unregisters the handler associated with the given service + + The service. + + + + Executes the Predicate against all keys for the registered service to + determine which component to return. + + The service. + + + + + Alternative implementation. + Extends the default implementation replacing the + key support with a more complete ComponentName. Supports + queries. + + + The user must register components using the following construction + + service:properties + + Where properties is a list of key value pairs (comma separated). Example: + + protocol:secure=true,version=1.2 + + The user can then query for components using the same construction: + + protocol:secure=true + + Or to return all: + + protocol:* + + + + + + Pendent + + + + + An implementation of a should + be able to return instances of + for a given resource identifier. + + + + + Holds the keys used by Kernel to register/request + a subsystem. + + + + + Key used for the configuration store subsystem + + + + + Key used for the conversion manager + + + + + Key used for the naming subsystem + + + + + Key used for the resource subsystem + + + + + Compares if the reference of two objects are equals. + + + + + Summary description for ReferenceExpressionUtil. + + + + + Default implementation of . + This implementation is complete and also support a kernel + hierarchy (sub containers). + + + Default implementation of . + This implementation is complete and also support a kernel + hierarchy (sub containers). + + + + + The IKernel interface exposes all the functionality + the MicroKernel implements. + + + It allows you to register components and + request them by the key or the service they implemented. + It also allow you to register facilities and subsystem, thus + augmenting the functionality exposed by the kernel alone to fits + your needs. + + + + + + + Summary description for IKernelEvents. + + + + + Event fired when a new component is registered + on the kernel. + + + + + Event fired when a component is removed from the kernel. + + + + + Event fired after the ComponentModel is created. + Allows customizations that may affect the handler. + + + + + Event fired when the kernel was added as child of + another kernel. + + + + + Event fired when the kernel was removed from being a child + of another kernel. + + + + + Event fired before the component is created. + + + + + Event fired when a component instance destroyed. + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a new handler is registered + (it might be in a valid or waiting dependency state) + + + + + Event fired when a dependency is being resolved, + it allows the dependency to be changed, + but the client ComponentModel must not be changed. + + + + + Registers the components provided by the s + with the . + + Create a new registration using .For() or . + + + + kernel.Register(Component.For<IService>().ImplementedBy<DefaultService>()); + + + The component registrations. + The kernel. + + + + Returns true if the specified component was + found and could be removed (i.e. no other component depends on it) + + The component's key + + + + + Returns true if the specified key was registered + + + + + + + Returns true if the specified service was registered + + + + + + + Associates objects with a component handler, + allowing it to use the specified dictionary + when resolving dependencies + + + + + + + Associates objects with a component handler, + allowing it to use the specified dictionary + when resolving dependencies + + + + + + + Associates objects with a component handler, + allowing it to use the specified dictionary + when resolving dependencies + + + + + + + Associates objects with a component handler, + allowing it to use the specified dictionary + when resolving dependencies + + + + + + + Releases a component instance. This allows + the kernel to execute the proper decomission + lifecycles on the component instance. + + + + + + Constructs an implementation of + for the given + + + + + + + Returns the + for the specified component key. + + + + + + + Returns the + for the specified service. + + + + + + + Return handlers for components that + implements the specified service. + + + + + + + Return handlers for components that + implements the specified service. + The check is made using IsAssignableFrom + + + + + + + Adds a to the kernel. + + + + + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + + The callback for creation. + + + + Creates and adds an facility to the kernel. + + The facility type. + + The callback for creation. + + + + Creates and adds an facility to the kernel. + + The facility type. + + + + + Creates and adds an facility to the kernel. + + The facility type. + The callback for creation. + + + + + Creates and adds an facility to the kernel. + + The facility type. + The callback for creation. + + + + + Returns the facilities registered on the kernel. + + + + + + Adds (or replaces) an + + + + + + + Returns an implementation of + for the specified key. + + + + + + + + Support for kernel hierarchy + + + + + + Remove child kernel + + + + + + Raise the hanlder registered event, required so + dependant handlers will be notified about their dependant moving + to valid state. + + + + + + Registers the to be forwarded + to the component registered with . + + The service type that gets forwarded. + The name of the component to forward to. + + + + Register a new component resolver that can take part in the decision + making about which handler to resolve + + + + + Adds a concrete class as a component + + + + + + + Adds a concrete class + as a component with the specified . + + The key with which to index the component. + The of the component. + The specified for the component. + + If you have indicated a lifestyle for the specified using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if , or + are . + + + Thrown if is . + + + + + Adds a concrete class + as a component with the specified . + + The key with which to index the component. + The of the component. + The specified for the component. + + If , then ignores all other configurations + for lifestyle and uses the value in the parameter. + + + If you have indicated a lifestyle for the specified using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if or + are . + + + Thrown if is . + + + + Adds a concrete class and an interface + as a component + + The key with which to index the component. + The service that this component implements. + The of the component. + + + + Adds a concrete class and an interface + as a component with the specified . + + The key with which to index the component. + The service that this component implements. + The of the component. + The specified for the component. + + If you have indicated a lifestyle for the specified using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if , , or + are . + + + Thrown if is . + + + + + Adds a concrete class and an interface + as a component with the specified . + + The key with which to index the component. + The service that this component implements. + The of the component. + The specified for the component. + + If , then ignores all other configurations + for lifestyle and uses the value in the parameter. + + + If you have indicated a lifestyle for the specified using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if , , or + are . + + + Thrown if is . + + + + + Adds a concrete class as a component + + + + + Adds a concrete class + as a component with the specified . + + The specified for the component. + + If you have indicated a lifestyle for the specified T using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if is . + + + + + Adds a concrete class + as a component with the specified . + + The specified for the component. + + If , then ignores all other configurations + for lifestyle and uses the value in the parameter. + + + If you have indicated a lifestyle for the specified T using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if is . + + + + Adds a concrete class and an interface + as a component + + The service that this component implements. + + + + Adds a concrete class and an interface + as a component with the specified . + + The service that this component implements. + The specified for the component. + + If you have indicated a lifestyle for the specified T using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + are . + + + Thrown if is . + + + + + Adds a concrete class and an interface + as a component with the specified . + + The service that this component implements. + The specified for the component. + + If , then ignores all other configurations + for lifestyle and uses the value in the parameter. + + + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + are . + + + Thrown if is . + + + + + Used mostly by facilities. Adds an instance + to be used as a component. + + + + + + Used mostly by facilities. Adds an instance + to be used as a component. + + + + + + + Adds a concrete class as a component and specify the extended properties. + Used by facilities, mostly. + + + + + + + + Adds a concrete class and an interface + as a component and specify the extended properties. + Used by facilities, mostly. + + + + + + + + + Adds a custom made . + Used by facilities. + + + + + + Used mostly by facilities. Adds an instance + to be used as a component. + + + + + + + Used mostly by facilities. Adds an instance + to be used as a component. + + + + + + + + Used mostly by facilities. Adds an instance + to be used as a component. + + + + + + + + + Returns the component instance by the service type + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Service to resolve + Arguments to resolve the services + + + + + Returns the component instance by the component key + using dynamic arguments + + Key to resolve + Arguments to resolve the services + + + + + Returns a component instance by the key + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + Arguments to resolve the services + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns component instances that implement TService + + + + + + + Returns a component instance by the key + + + + + + + + + Returns the implementation of + + + + + Returns the implementation of + + + + + Gets or sets the implementation of + + + + + Gets or sets the implementation for + + + + + Returns the implementation for + + + + + Gets or sets the implementation of + allowing different strategies for proxy creation. + + + + + Returns the parent kernel + + + + + Graph of components and iteractions. + + + + + Returns the component instance by the key + + + + + Returns the component instance by the service type + + + + + The parent kernel, if exists. + + + + + The implementation of + + + + + The implementation of + + + + + The dependency resolver. + + + + + Implements a policy to control component's + disposal that the usef forgot. + + + + + Holds the implementation of + + + + + List of registered. + + + + + Map of subsystems registered. + + + + + List of sub containers. + + + + + Constructs a DefaultKernel with no component + proxy support. + + + + + Constructs a DefaultKernel with the specified + implementation of and + + + + + + + Constructs a DefaultKernel with the specified + implementation of + + + + + Registers the components described by the s + with the . + The component registrations. + The kernel. + + + + + Returns true if the specified component was + found and could be removed (i.e. no other component depends on it) + + The component's key + + + + + Associates objects with a component handler, + allowing it to use the specified dictionary + when resolving dependencies + + + + + + + Associates objects with a component handler, + allowing it to use the specified dictionary + when resolving dependencies + + + + + + + Associates objects with a component handler, + allowing it to use the specified dictionary + when resolving dependencies + + + + + + + Associates objects with a component handler, + allowing it to use the specified dictionary + when resolving dependencies + + + + + + + Releases a component instance. This allows + the kernel to execute the proper decomission + lifecycles on the component instance. + + + + + + Return handlers for components that + implements the specified service. + + + + + + + Return handlers for components that + implements the specified service. + The check is made using IsAssignableFrom + + + + + + + Returns the facilities registered on the kernel. + + + + + + Gets the service object of the specified type. + + + + A service object of type serviceType. + + + An object that specifies the type of service object to get. + + + + Gets the service object of the specified type. + + + + A service object of type serviceType. + + + + + Starts the process of component disposal. + + + + + Adds a concrete class + as a component with the specified . + + The key with which to index the component. + The of the component. + The specified for the component. + + If you have indicated a lifestyle for the specified using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if or + are . + + + Thrown if is . + + + + + Adds a concrete class + as a component with the specified . + + The key with which to index the component. + The of the component. + The specified for the component. + + If , then ignores all other configurations + for lifestyle and uses the value in the parameter. + + + If you have indicated a lifestyle for the specified using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if or + are . + + + Thrown if is . + + + + Adds a concrete class and an interface + as a component with the specified . + + The key with which to index the component. + The service that this component implements. + The of the component. + The specified for the component. + + If you have indicated a lifestyle for the specified using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if , , or + are . + + + Thrown if is . + + + + + Adds a concrete class and an interface + as a component with the specified . + + The key with which to index the component. + The service that this component implements. + The of the component. + The specified for the component. + + If , then ignores all other configurations + for lifestyle and uses the value in the parameter. + + + If you have indicated a lifestyle for the specified using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if , , or + are . + + + Thrown if is . + + + + + + + + + + + + + + + + + + + + + + + + + + + + Used mostly by facilities. Adds an instance + to be used as a component. + + + + + + + Used mostly by facilities. Adds an instance + to be used as a component. + + + + + + + + Adds a concrete class as a component + + + + + Adds a concrete class + as a component with the specified . + + The specified for the component. + + If you have indicated a lifestyle for the specified T using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if is . + + + + + Adds a concrete class + as a component with the specified . + + The specified for the component. + If , then ignores all other configurations + for lifestyle and uses the value in the parameter. + + If you have indicated a lifestyle for the specified T using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + Thrown if + + is + + . + + + + Adds a concrete class and an interface + as a component + + The service that this component implements. + + + + Adds a concrete class and an interface + as a component with the specified . + + The service that this component implements. + The specified for the component. + + If you have indicated a lifestyle for the specified T using + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + are . + + + Thrown if is . + + + + + Adds a concrete class and an interface + as a component with the specified . + + The service that this component implements. + The specified for the component. + If , then ignores all other configurations + for lifestyle and uses the value in the parameter. + + attributes, this method will not overwrite that lifestyle. To do that, use the + method. + + + are . + + + Thrown if is . + + + + + Used mostly by facilities. Adds an instance + to be used as a component. + + + + + + Used mostly by facilities. Adds an instance + to be used as a component. + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + Returns the component instance by the component key + + + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns the component instance by the service type + + + + + Returns all the valid component instances by + the service type + + The service type + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns all the valid component instances by + the service type + + The service type + Arguments to resolve the services + + + + Returns component instances that implement TService + + + + + + + + Returns component instances that implement TService + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the service type + using dynamic arguments + + + + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns the component instance by the component key + using dynamic arguments + + + + + + + + Returns a component instance by the key + + + + + + + + Returns component instances that implement TService + + + + + + + Returns a component instance by the key + + + + + + + + + Resolves the specified key. + + The key. + The service. + Type of the arguments as anonymous. + + + + + Graph of components and iteractions. + + + + + Pending + + + + + Pending + + + + + + Pending + + + + + + Pending + + + + + + Pending + + + + + + Pending + + + + + + Pending + + + + + Pending + + + + + + Represents a delegate which holds basic information about a component. + + Key which identifies the component + handler that holds this component and is capable of + creating an instance of it. + + + + + Represents a delegate which holds basic information about a component + and its instance. + + Component meta information + Component instance + + + + Represents a delegate which holds the information about the + component + + + + + Represents a delegate which holds a handler + + handler that holds a component and is capable of + creating an instance of it. + + + + + + Represents a delegate which holds dependency + resolving information. + + + + diff --git a/lib/Castle.Windsor.dll b/lib/Castle.Windsor.dll index c577e4a5052f5104cf0b4671e070547a85c89ccb..480a4b5ff2678fd5113dfa27b522a935c9160fc8 100644 GIT binary patch literal 73728 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 literal 61440 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 diff --git a/lib/Castle.Windsor.xml b/lib/Castle.Windsor.xml new file mode 100644 index 0000000..4204e95 --- /dev/null +++ b/lib/Castle.Windsor.xml @@ -0,0 +1,1571 @@ + + + + Castle.Windsor + + + + + Implementation of that assumes ownership of the + wrapped . If this adapter is disposed, the underlying + is diposed as well. + + + + + Implementation of that does not assume ownership of the + wrapped . + + + + + Integrates the to the System.ComponentModel + and System.ComponentMode.Design infrastructure. + + + + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Constructs an initial ContainerWrapper. + + The to adapt. + + + + Constructs an initial ContainerWrapper. + + The to adapt. + The parent . + + + + Adds the specified to the at the end of the list. + + The to add. + + + + Adds the specified to the at the end of the list, + and assigns a name to the component. + + The to add. + The unique, case-insensitive name to assign to the component, or null. + + + + Removes a component from the . + + The to remove + + + + Gets the service object of the specified type. + + The type of service. + An object inplementing service, or null. + + + + Adds the specified service to the service container. + + The type of service to add. + The instance of the service to add. + + + + Adds the specified service to the service container. + + The type of service to add. + A callback object that is used to create the service. + + + + Adds the specified service to the service container, and optionally + promotes the service to any parent service containers. + + The type of service to add. + The instance of the service to add. + true to promote this request to any parent service containers. + + + + Adds the specified service to the service container, and optionally + promotes the service to parent service containers. + + The type of service to add. + A callback object that is used to create the service. + true to promote this request to any parent service containers. + + + + Removes the specified service type from the service container. + + The type of service to remove. + + + + Removes the specified service type from the service container, + and optionally promotes the service to parent service containers. + + The type of service to remove. + true to promote this request to any parent service containers. + + + + Determins if the service type represents an intrinsic service. + + The type of service to remove. + true if the service type is an intrinsic service. + + + + Determins if the specified service type exists in the service container. + + The type of service to remove. + true if the service type exists. + + + + Releases the resources used by the component. + + + + + Releases the resources used by the component. + + true if disposing. + + + + Gets or sets the associated with the . + + + + + Event that notifies the disposal of the . + + + + + Gets all the components in the . + + + + + Gets the adapted + + + + + Constructs a default ContainerAdapter. + + + + + Constructs a chained ContainerAdapter. + + The parent . + + + + Constructs an initial ContainerAdapter. + + The to adapt. + + + + Constructs an initial ContainerAdapter. + + The to adapt. + The parent . + + + + Custom activator to create the instance on demand. + + + + + Implementation of . + Do not support configuration inheritance. + + + + + Accepts the specified node. + Check if node has the same name as the processor and the node.NodeType + is in the AcceptNodeTypes List + + The node. + + + + + Convert and return child parameter into an XmlElement + An exception will be throw in case the child node cannot be converted + + Parent node + Node to be converted + child node as XmlElement + + + + + + + + + + + + attributeValue + + propertyValue + + + + + + + Processes the specified node list. + + The node list. + The engine. + + + + Processes element attributes. + if the attribute is include will append to the element + all contents from the file. + if the attribute has a property reference the reference will be + expanded + + The element. + + + + + Properties names can contain a-zA-Z0-9_. + i.e. #!{ my_node_name } || #{ my.node.name } + spaces are trimmed + + + + + Processes the string. + + The node. + The value. + The context. + + + + Accepts the specified node. + Check if node has the same name as the processor and the node.NodeType + is in the AcceptNodeTypes List + NOTE: since the BatchRegistrationFacility already uses an include + element we will distringish between both by looking for the presence of an uri attribute + we should revisit this later by using xml-namespaces + + The node. + + + + + + + + + + + + + attributeValue + + propertyValue + + + + + + + Initializes a new instance of the class. + + Name of the environment. + + + + Initializes a new instance of the class. + + Name of the environment. + The resource sub system. + + + + Processes the element. + + The element. + + + + + Processes the element. + + The element. + + + + + Make a shallow copy of the nodeList. + + The nodeList to be copied. + + + + + Pendent + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the environment. + The resource sub system. + + + + Initializes a new instance of the class. + + + + + Provides common methods for those who wants + to implement + + + + + Interpreter of a specific language to describe + configuration nodes in a hierachical manner. + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + Should obtain the contents from the resource, + interpret it and populate the + accordingly. + + + + + + + Exposes the reference to + which the interpreter is likely to hold + + + + + + Gets or sets the name of the environment. + + The name of the environment. + + + + Reads the configuration from a XmlFile. Sample structure: + + <configuration> + <facilities> + <facility id="myfacility"> + + </facility> + </facilities> + + <components> + <component id="component1"> + + </component> + </components> + </configuration> + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The filename. + + + + Initializes a new instance of the class. + + The source. + + + + Gets or sets the kernel. + + The kernel. + + + + Installs all the components from the App.Config file. + + + + + + Installs all the component from the xml configuration file. + + The xml configuration file. + + + + + Installs all the component from the xml configuration. + + The xml configuration resource. + + + + + Delegate to provide environment name. + + The environment name. + + + + The contract to install components in the container. + + + + + Performs the installation in the . + + The container. + The configuration store. + + + + Initializes a new instance of the ConfigurationInstaller class. + + + + + Sets the configuration environment name. + + The environment name. + + + + + Set the configuration environment strategy. + + The environment strategy. + + + + + Default implementation. + + + + + Installs the components and facilities based on the + information on the configuration store. + + + + + Perform installation. + + Target container + Configuration store + + + + Perform installation. + + Target container + Configuration store + + + + Obtains the interceptors associated with the component. + + The kernel instance + The component model + The creation context + interceptors array + + + + This implementation of relies + on DynamicProxy to expose proxy capabilies. + + + Note that only virtual methods can be intercepted in a + concrete class. However, if the component + was registered with a service interface, we proxy + the interface and the methods don't need to be virtual, + + + + + Constructs a DefaultProxyFactory + + + + + Creates the proxy for the supplied component. + + The kernel. + The target. + The model. + The constructor arguments. + The creation context + The component proxy. + + + + Determines if the component requiries a target instance for proxying. + + The kernel. + The model. + true if an instance is required. + + + + Gets the environment information (name). Implementors should + use to define their environments and how those affect the configuration. + + + + + Gets the name of the environment. + + + + + + The IWindsorContainer interface exposes all the + functionality the Windsor implements. + + + + + Registers a facility within the container. + + The key by which the gets indexed. + The to add to the container. + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Adds a component to be managed by the container + + The key by which the component gets indexed. + The to manage. + + + + Adds a component to be managed by the container + + The key by which the component gets indexed. + The service that the component implements. + The to manage. + + + + Adds a component to be managed by the container + + The key by which the component gets indexed. + The to manage. + The with which to manage the component. + + + + Adds a component to be managed by the container + + The key by which the component gets indexed. + The service that the component implements. + The to manage. + The with which to manage the component. + + + + Adds a concrete class as a component and specify the extended properties. + Used by facilities, mostly. + + + + + + + + Adds a concrete class and an interface + as a component and specify the extended properties. + Used by facilities, mostly. + + + + + + + + + Adds a component to be managed by the container. + The key to obtain the component will be the FullName of the type. + + The to manage. + + + + Adds a component to be managed by the container + + The to manage. + The key by which the component gets indexed. + + + + Adds a component to be managed by the container. + The key to obtain the component will be the FullName of the type. + + The to manage. + The with which to manage the component. + + + + Adds a component to be managed by the container + + The to manage. + The key by which the component gets indexed. + The with which to manage the component. + + + + Adds a component to be managed by the container + The key to obtain the component will be the FullName of the type. + + The service that the component implements. + The to manage. + + + + Adds a component to be managed by the container + + The service that the component implements. + The to manage. + The key by which the component gets indexed. + + + + Adds a component to be managed by the container + The key to obtain the component will be the FullName of the type. + + The service that the component implements. + The to manage. + The with which to manage the component. + + + + Adds a component to be managed by the container + + The service that the component implements. + The to manage. + The key by which the component gets indexed. + The with which to manage the component. + + + + Adds a concrete class as a component and specify the extended properties. + Used by facilities, mostly. + The key to obtain the component will be the FullName of the type. + + + + + + + Adds a concrete class as a component and specify the extended properties. + Used by facilities, mostly. + + + + + + + + Adds a concrete class and an interface + as a component and specify the extended properties. + Used by facilities, mostly. + The key to obtain the component will be the FullName of the type. + + + + + + + + Adds a concrete class and an interface + as a component and specify the extended properties. + Used by facilities, mostly. + + + + + + + + + Registers the components provided by the s + with the . + + Create a new registration using .For() or . + + + + container.Register(Component.For<IService>().ImplementedBy<DefaultService>()); + + + The component registrations. + The container. + + + + Installs the components provided by the s + with the . + The component installers. + The container. + + + + + Returns a component instance by the key + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Releases a component instance + + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Remove a child container + + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Returns a component instance by the service + + Service type + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the service + + Service type + + The component instance + + + + Returns a component instance by the key + + Component's key + Service type + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + Service type + Component's key + + The Component instance + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that mathc this service + the service to match + + + + + Resolve all valid components that mathc this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that mathc this service + the service to match + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Shortcut to + + + + + Shortcut to + + + + + Returns the inner instance of the MicroKernel + + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + Implementation of + which delegates to implementation. + + + + + Constructs a container without any external + configuration reference + + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Constructs a container using the specified + implementation. + + The instance of an implementation. + + + + Initializes a new instance of the class. + + The interpreter. + The environment info. + + + + Initializes a new instance of the class using a + xml file to configure it. + + Equivalent to the use of new WindsorContainer(new XmlInterpreter(xmlFile)) + + + The XML file. + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Kernel instance + Installer instance + + + + Constructs a container using the specified + implementation. Rarely used. + + + This constructs sets the Kernel.ProxyFactory property to + Proxy.DefaultProxyFactory + + Container's name + Kernel instance + Installer instance + + + + Constructs with a given . + + A instance of an . + + + + Constructs a container assigning a parent container + before starting the dependency resolution. + + The instance of an + The instance of an implementation + + + + Initializes a new instance of the class. + + The container's name. + The parent. + The interpreter. + + + + Registers a facility within the kernel. + + + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Creates and adds an facility to the container. + + The facility type. + + The callback for creation. + + + + + Creates and adds an facility to the container. + + The facility type. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Creates and adds an facility to the container. + + The facility type. + The callback for creation. + + + + + Adds a component to be managed by the container + + + + + + + Adds a component to be managed by the container + + + + + + + + Adds a component to be managed by the container + + The key by which the component gets indexed. + The to manage. + The with which to manage the component. + + + + Adds a component to be managed by the container + + The key by which the component gets indexed. + The service that the component implements. + The to manage. + The with which to manage the component. + + + + Adds a component to be managed by the container. + The key to obtain the component will be the FullName of the type. + + The to manage. + + + + Adds a component to be managed by the container + + The to manage. + The key by which the component gets indexed. + + + + Adds a component to be managed by the container. + The key to obtain the component will be the FullName of the type. + + The to manage. + The with which to manage the component. + + + + Adds a component to be managed by the container + + The service that the component implements. + The to manage. + The key by which the component gets indexed. + + + + Adds a component to be managed by the container + The key to obtain the component will be the FullName of the type. + + The service that the component implements. + The to manage. + The with which to manage the component. + + + + Adds a component to be managed by the container + + The to manage. + The key by which the component gets indexed. + The with which to manage the component. + + + + Adds a component to be managed by the container + The key to obtain the component will be the FullName of the type. + + The service that the component implements. + The to manage. + + + + Adds a component to be managed by the container + + The service that the component implements. + The to manage. + The key by which the component gets indexed. + The with which to manage the component. + + + + Adds a concrete class as a component and specify the extended properties. + Used by facilities, mostly. + The key to obtain the component will be the FullName of the type. + + + + + + + Adds a concrete class as a component and specify the extended properties. + Used by facilities, mostly. + + + + + + + + Adds a concrete class and an interface + as a component and specify the extended properties. + Used by facilities, mostly. + The key to obtain the component will be the FullName of the type. + + + + + + + + Adds a concrete class and an interface + as a component and specify the extended properties. + Used by facilities, mostly. + + + + + + + + + Registers the components described by the s + with the . + The component registrations. + The container. + + + + + Installs the components provided by the s + with the . + The component installers. + The container. + + + + + Returns a component instance by the key + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Resolve all valid components that match this type. + + The service type + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Resolve all valid components that match this type. + The service type + Arguments to resolve the service + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the key + + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the service + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the key + + + + + + + + Returns a component instance by the service + + + + + + + Returns a component instance by the key + + + + + + + Releases a component instance + + + + + + Registers a subcontainer. The components exposed + by this container will be accessible from subcontainers. + + + + + + Removes (unregisters) a subcontainer. The components exposed by this container + will no longer be accessible to the child container. + + + + + + Gets a child container instance by name. + + The container's name. + The child container instance or null + + + + Gets the service object of the specified type. + + + A service object of type serviceType. + + An object that specifies the type of service object to get. + + + + Gets the service object of the specified type. + + + A service object of type serviceType. + + + + + Executes Dispose on underlying + + + + + Gets the container's name + + + Only useful when child containers are being used + + The container's name. + + + + Returns the inner instance of the MicroKernel + + + + + Gets or sets the parent container if this instance + is a sub container. + + + + + Shortcut to the method + + + + + Shortcut to the method + + + +