Adds an element with the provided key and value to the <seecref="T:System.Collections.IDictionary"></see> object.
</summary>
<paramname="key">The <seecref="T:System.Object"></see> to use as the key of the element to add.</param>
<paramname="value">The <seecref="T:System.Object"></see> to use as the value of the element to add.</param>
<exceptioncref="T:System.ArgumentException">An element with the same key already exists in the <seecref="T:System.Collections.IDictionary"></see> object. </exception>
<exceptioncref="T:System.ArgumentNullException">key is null. </exception>
<exceptioncref="T:System.NotSupportedException">The <seecref="T:System.Collections.IDictionary"></see> is read-only.-or- The <seecref="T:System.Collections.IDictionary"></see> has a fixed size. </exception>
Removes the element with the specified key from the <seecref="T:System.Collections.IDictionary"></see> object.
</summary>
<paramname="key">The key of the element to remove.</param>
<exceptioncref="T:System.NotSupportedException">The <seecref="T:System.Collections.IDictionary"></see> object is read-only.-or- The <seecref="T:System.Collections.IDictionary"></see> has a fixed size. </exception>
<exceptioncref="T:System.ArgumentNullException">key is null. </exception>
Copies the elements of the <seecref="T:System.Collections.ICollection"></see> to an <seecref="T:System.Array"></see>, starting at a particular <seecref="T:System.Array"></see> index.
</summary>
<paramname="array">The one-dimensional <seecref="T:System.Array"></see> that is the destination of the elements copied from <seecref="T:System.Collections.ICollection"></see>. The <seecref="T:System.Array"></see> must have zero-based indexing.</param>
<paramname="index">The zero-based index in array at which copying begins.</param>
<exceptioncref="T:System.ArgumentNullException">array is null. </exception>
<exceptioncref="T:System.ArgumentException">The type of the source <seecref="T:System.Collections.ICollection"></see> cannot be cast automatically to the type of the destination array. </exception>
<exceptioncref="T:System.ArgumentOutOfRangeException">index is less than zero. </exception>
<exceptioncref="T:System.ArgumentException">array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source <seecref="T:System.Collections.ICollection"></see> is greater than the available space from index to the end of the destination array. </exception>
Gets an <seecref="T:System.Collections.ICollection"></see> object containing the keys of the <seecref="T:System.Collections.IDictionary"></see> object.
</summary>
<value></value>
<returns>An <seecref="T:System.Collections.ICollection"></see> object containing the keys of the <seecref="T:System.Collections.IDictionary"></see> object.</returns>
Gets an <seecref="T:System.Collections.ICollection"></see> object containing the values in the <seecref="T:System.Collections.IDictionary"></see> object.
</summary>
<value></value>
<returns>An <seecref="T:System.Collections.ICollection"></see> object containing the values in the <seecref="T:System.Collections.IDictionary"></see> object.</returns>
Returns the concrete instantiation of the <seecref="P:Castle.DynamicProxy.IInvocation.Method"/> on the proxy, with any generic
parameters bound to real types.
</summary>
<returns>
The concrete instantiation of the <seecref="P:Castle.DynamicProxy.IInvocation.Method"/> on the proxy, or the <seecref="P:Castle.DynamicProxy.IInvocation.Method"/> if
not a generic method.
</returns>
<remarks>
Can be slower than calling <seecref="P:Castle.DynamicProxy.IInvocation.Method"/>.
Provides functionality for disassembling instances of attributes to CustomAttributeBuilder form, during the process of emiting new types by Dynamic Proxy.
Applied to the assemblies saved by <seecref="T:Castle.DynamicProxy.ModuleScope"/> in order to persist the cache data included in the persisted assembly.
Creates a proxy type for given <paramrefname="classToProxy"/>, implementing <paramrefname="additionalInterfacesToProxy"/>, using <paramrefname="options"/> provided.
</summary>
<paramname="classToProxy">The class type to proxy.</param>
<paramname="additionalInterfacesToProxy">Additional interface types to proxy.</param>
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 <seecref="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"/> method.)
</remarks>
<exceptioncref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramrefname="classToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramrefname="classToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is not public.
Note that to avoid this exception, you can mark offending type internal, and define <seecref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/>
pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception>
Creates a proxy type that proxies calls to <paramrefname="interfaceToProxy"/> members on <paramrefname="targetType"/>, implementing <paramrefname="additionalInterfacesToProxy"/>, using <paramrefname="options"/> provided.
</summary>
<paramname="interfaceToProxy">The interface type to proxy.</param>
<paramname="additionalInterfacesToProxy">Additional interface types to proxy.</param>
<paramname="targetType">Type implementing <paramrefname="interfaceToProxy"/> on which calls to the interface members should be intercepted.</param>
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 <seecref="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"/> method.)
</remarks>
<exceptioncref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is not public.
Note that to avoid this exception, you can mark offending type internal, and define <seecref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/>
pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception>
Creates a proxy type for given <paramrefname="interfaceToProxy"/> and <parmarefname="additionalInterfacesToProxy"/> that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation.
</summary>
<paramname="interfaceToProxy">The interface type to proxy.</param>
<paramname="additionalInterfacesToProxy">Additional interface types to proxy.</param>
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. <seecref="P:Castle.DynamicProxy.IInvocation.InvocationTarget"/>), rather than a class. All <seecref="T:Castle.DynamicProxy.IInvocation"/> classes should then implement <seecref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface,
to allow interceptors to switch invocation target with instance of another type implementing called interface.
</remarks>
<exceptioncref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is not public.
Note that to avoid this exception, you can mark offending type internal, and define <seecref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/>
pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception>
Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors.
</remarks>
<exceptioncref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is not public.
Note that to avoid this exception, you can mark offending type internal, and define <seecref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/>
pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception>
Initializes a new instance of the <seecref="T:Castle.DynamicProxy.DefaultProxyBuilder"/> class with new <seecref="P:Castle.DynamicProxy.DefaultProxyBuilder.ModuleScope"/>.
Gets a unique name based on <paramrefname="suggestedName"/>
</summary>
<paramname="suggestedName">Name suggested by the caller</param>
<returns>Unique name based on <paramrefname="suggestedName"/>.</returns>
<remarks>
Implementers should provide name as closely resembling <paramrefname="suggestedName"/> 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 <seecref="M:Castle.DynamicProxy.Generators.INamingScope.GetUniqueName(System.String)"/> 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.
Initializes a new instance of the <seecref="T:Castle.DynamicProxy.ModuleScope"/> class, allowing to specify whether the assemblies generated by this instance
should be saved.
</summary>
<paramname="savePhysicalAssembly">If set to <c>true</c> saves the generated module.</param>
Initializes a new instance of the <seecref="T:Castle.DynamicProxy.ModuleScope"/> class, allowing to specify whether the assemblies generated by this instance
should be saved.
</summary>
<paramname="savePhysicalAssembly">If set to <c>true</c> saves the generated module.</param>
<paramname="disableSignedModule">If set to <c>true</c> disables ability to generate signed module. This should be used in cases where ran under constrained permissions.</param>
Initializes a new instance of the <seecref="T:Castle.DynamicProxy.ModuleScope"/> class, allowing to specify whether the assemblies generated by this instance
should be saved and what simple names are to be assigned to them.
</summary>
<paramname="savePhysicalAssembly">If set to <c>true</c> saves the generated module.</param>
<paramname="disableSignedModule">If set to <c>true</c> disables ability to generate signed module. This should be used in cases where ran under constrained permissions.</param>
<paramname="strongAssemblyName">The simple name of the strong-named assembly generated by this <seecref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
<paramname="strongModulePath">The path and file name of the manifest module of the strong-named assembly generated by this <seecref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
<paramname="weakAssemblyName">The simple name of the weak-named assembly generated by this <seecref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
<paramname="weakModulePath">The path and file name of the manifest module of the weak-named assembly generated by this <seecref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
Initializes a new instance of the <seecref="T:Castle.DynamicProxy.ModuleScope"/> class, allowing to specify whether the assemblies generated by this instance
should be saved and what simple names are to be assigned to them.
</summary>
<paramname="savePhysicalAssembly">If set to <c>true</c> saves the generated module.</param>
<paramname="disableSignedModule">If set to <c>true</c> disables ability to generate signed module. This should be used in cases where ran under constrained permissions.</param>
<paramname="namingScope">Naming scope used to provide unique names to generated types and their members (usually via sub-scopes).</param>
<paramname="strongAssemblyName">The simple name of the strong-named assembly generated by this <seecref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
<paramname="strongModulePath">The path and file name of the manifest module of the strong-named assembly generated by this <seecref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
<paramname="weakAssemblyName">The simple name of the weak-named assembly generated by this <seecref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
<paramname="weakModulePath">The path and file name of the manifest module of the weak-named assembly generated by this <seecref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
Saves the generated assembly with the name and directory information given when this <seecref="T:Castle.DynamicProxy.ModuleScope"/> instance was created (or with
the <seecref="F:Castle.DynamicProxy.ModuleScope.DEFAULT_FILE_NAME"/> and current directory if none was given).
</summary>
<remarks>
<para>
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 <seecref="M:Castle.DynamicProxy.ModuleScope.SaveAssembly(System.Boolean)"/> overload.
</para>
<para>
If this <seecref="T:Castle.DynamicProxy.ModuleScope"/> was created without indicating that the assembly should be saved, this method does nothing.
</para>
</remarks>
<exceptioncref="T:System.InvalidOperationException">Both a strong-named and a weak-named assembly have been generated.</exception>
<returns>The path of the generated assembly file, or null if no file has been generated.</returns>
Saves the specified generated assembly with the name and directory information given when this <seecref="T:Castle.DynamicProxy.ModuleScope"/> instance was created
(or with the <seecref="F:Castle.DynamicProxy.ModuleScope.DEFAULT_FILE_NAME"/> and current directory if none was given).
</summary>
<paramname="strongNamed">True if the generated assembly with a strong name should be saved (see <seecref="P:Castle.DynamicProxy.ModuleScope.StrongNamedModule"/>);
false if the generated assembly without a strong name should be saved (see <seecref="P:Castle.DynamicProxy.ModuleScope.WeakNamedModule"/>.</param>
<remarks>
<para>
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).
</para>
<para>
If this <seecref="T:Castle.DynamicProxy.ModuleScope"/> was created without indicating that the assembly should be saved, this method does nothing.
</para>
</remarks>
<exceptioncref="T:System.InvalidOperationException">No assembly has been generated that matches the <paramrefname="strongNamed"/> parameter.
</exception>
<returns>The path of the generated assembly file, or null if no file has been generated.</returns>
Loads the generated types from the given assembly into this <seecref="T:Castle.DynamicProxy.ModuleScope"/>'s cache.
</summary>
<paramname="assembly">The assembly to load types from. This assembly must have been saved via <seecref="M:Castle.DynamicProxy.ModuleScope.SaveAssembly(System.Boolean)"/> or
<seecref="M:Castle.DynamicProxy.ModuleScope.SaveAssembly"/>, or it must have the <seecref="T:Castle.DynamicProxy.Serialization.CacheMappingsAttribute"/> manually applied.</param>
<remarks>
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.
Gets the directory where the strongly named module generated by this scope will be saved, or <seelangword="null"/> if the current directory
is used.
</summary>
<value>The directory where the strongly named module generated by this scope will be saved when <seecref="M:Castle.DynamicProxy.ModuleScope.SaveAssembly"/> is called
(if this scope was created to save modules).</value>
Gets the directory where the weakly named module generated by this scope will be saved, or <seelangword="null"/> if the current directory
is used.
</summary>
<value>The directory where the weakly named module generated by this scope will be saved when <seecref="M:Castle.DynamicProxy.ModuleScope.SaveAssembly"/> is called
(if this scope was created to save modules).</value>
Creates proxy object intercepting calls to members of interface <typeparamrefname="TInterface"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
</summary>
<typeparamname="TInterface">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</typeparam>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>Object proxying calls to members of <typeparamrefname="TInterface"/> on <paramrefname="target"/> object.</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TInterface"/>is not an interface type.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method generates new proxy type for each type of <paramrefname="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
use <seecref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.DynamicProxy.IInterceptor[])"/> method.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <typeparamrefname="TInterface"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
</summary>
<typeparamname="TInterface">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</typeparam>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <typeparamrefname="TInterface"/> on <paramrefname="target"/> object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TInterface"/>is not an interface type.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method generates new proxy type for each type of <paramrefname="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
use <seecref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"/> method.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> type on <paramrefname="target"/> object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="target"/> does not implement <paramrefname="interfaceToProxy"/> interface.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method generates new proxy type for each type of <paramrefname="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
use <seecref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.DynamicProxy.IInterceptor[])"/> method.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> type on <paramrefname="target"/> object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="target"/> does not implement <paramrefname="interfaceToProxy"/> interface.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method generates new proxy type for each type of <paramrefname="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
use <seecref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"/> method.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types on <paramrefname="target"/> object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="target"/> does not implement <paramrefname="interfaceToProxy"/> interface.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method generates new proxy type for each type of <paramrefname="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
use <seecref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.DynamicProxy.IInterceptor[])"/> method.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types on <paramrefname="target"/> object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="target"/> does not implement <paramrefname="interfaceToProxy"/> interface.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method generates new proxy type for each type of <paramrefname="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
use <seecref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.DynamicProxy.IInterceptor[])"/> method.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
Interceptors can use <seecref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramrefname="target"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> type on <paramrefname="target"/> object or alternative implementation swapped at runtime by an interceptor.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="target"/> does not implement <paramrefname="interfaceToProxy"/> interface.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <typeparamrefname="TInterface"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
Interceptors can use <seecref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramrefname="target"/>.
</summary>
<typeparamname="TInterface">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</typeparam>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <typeparamrefname="TInterface"/> type on <paramrefname="target"/> object or alternative implementation swapped at runtime by an interceptor.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TInterface"/> is not an interface type.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <typeparamrefname="TInterface"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
Interceptors can use <seecref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramrefname="target"/>.
</summary>
<typeparamname="TInterface">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</typeparam>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <typeparamrefname="TInterface"/> type on <paramrefname="target"/> object or alternative implementation swapped at runtime by an interceptor.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TInterface"/> is not an interface type.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
Interceptors can use <seecref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramrefname="target"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types on <paramrefname="target"/> object or alternative implementation swapped at runtime by an interceptor.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="target"/> does not implement <paramrefname="interfaceToProxy"/> interface.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
Interceptors can use <seecref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramrefname="target"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> type on <paramrefname="target"/> object or alternative implementation swapped at runtime by an interceptor.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="target"/> does not implement <paramrefname="interfaceToProxy"/> interface.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on <paramrefname="target"/> object with given <paramrefname="interceptors"/>.
Interceptors can use <seecref="T:Castle.DynamicProxy.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramrefname="target"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface implemented by <paramrefname="target"/> which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types on <paramrefname="target"/> object or alternative implementation swapped at runtime by an interceptor.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="target"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="target"/> does not implement <paramrefname="interfaceToProxy"/> interface.</exception>
<exceptioncref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramrefname="target"/> object.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramrefname="target"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <typeparamrefname="TInterface"/> on target object generated at runtime with given <paramrefname="interceptor"/>.
</summary>
<typeparamname="TInterface">Type of the interface which will be proxied.</typeparam>
<paramname="interceptor">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <typeparamrefname="TInterface"/> types on generated target object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptor"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TInterface"/> is not an interface type.</exception>
<remarks>
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 <seecref="T:Castle.DynamicProxy.IInterceptor"/> implementations.
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
As a result of that also at least one <seecref="T:Castle.DynamicProxy.IInterceptor"/> implementation must be provided.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <typeparamrefname="TInterface"/> on target object generated at runtime with given <paramrefname="interceptors"/>.
</summary>
<typeparamname="TInterface">Type of the interface which will be proxied.</typeparam>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <typeparamrefname="TInterface"/> types on generated target object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TInterface"/> is not an interface type.</exception>
<remarks>
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 <seecref="T:Castle.DynamicProxy.IInterceptor"/> implementations.
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
As a result of that also at least one <seecref="T:Castle.DynamicProxy.IInterceptor"/> implementation must be provided.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <typeparamrefname="TInterface"/> on target object generated at runtime with given <paramrefname="interceptors"/>.
</summary>
<typeparamname="TInterface">Type of the interface which will be proxied.</typeparam>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <typeparamrefname="TInterface"/> types on generated target object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TInterface"/> is not an interface type.</exception>
<remarks>
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 <seecref="T:Castle.DynamicProxy.IInterceptor"/> implementations.
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
As a result of that also at least one <seecref="T:Castle.DynamicProxy.IInterceptor"/> implementation must be provided.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on target object generated at runtime with given <paramrefname="interceptor"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface which will be proxied.</param>
<paramname="interceptor">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> type on generated target object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptor"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<remarks>
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 <seecref="T:Castle.DynamicProxy.IInterceptor"/> implementations.
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on target object generated at runtime with given <paramrefname="interceptors"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface which will be proxied.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> type on generated target object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<remarks>
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 <seecref="T:Castle.DynamicProxy.IInterceptor"/> implementations.
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on target object generated at runtime with given <paramrefname="interceptors"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface which will be proxied.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types on generated target object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<remarks>
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 <seecref="T:Castle.DynamicProxy.IInterceptor"/> implementations.
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on target object generated at runtime with given <paramrefname="interceptors"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface which will be proxied.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> on generated target object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<remarks>
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to members of interface <paramrefname="interfaceToProxy"/> on target object generated at runtime with given <paramrefname="interceptors"/>.
</summary>
<paramname="interfaceToProxy">Type of the interface which will be proxied.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramrefname="interfaceToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types on generated target object.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="interfaceToProxy"/> is not an interface type.</exception>
<remarks>
Since this method uses an empty-shell implementation of <paramrefname="additionalInterfacesToProxy"/> to proxy generated at runtime, the actual implementation of proxied methods must be provided by given <seecref="T:Castle.DynamicProxy.IInterceptor"/> implementations.
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <typeparamrefname="TClass"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<typeparamname="TClass">Type of class which will be proxied.</typeparam>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <typeparamrefname="TClass"/> proxying calls to virtual members of <typeparamrefname="TClass"/> type.
</returns>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TClass"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamrefname="TClass"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamrefname="TClass"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <typeparamrefname="TClass"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<typeparamname="TClass">Type of class which will be proxied.</typeparam>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <typeparamrefname="TClass"/> proxying calls to virtual members of <typeparamrefname="TClass"/> type.
</returns>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TClass"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamrefname="TClass"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamrefname="TClass"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramrefname="classToProxy"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="constructorArguments">Arguments of constructor of type <paramrefname="classToProxy"/> which should be used to create a new instance of that type.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> type.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no constructor exists on type <paramrefname="classToProxy"/> with parameters matching <paramrefname="constructorArguments"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="constructorArguments">Arguments of constructor of type <paramrefname="classToProxy"/> which should be used to create a new instance of that type.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> type.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no constructor exists on type <paramrefname="classToProxy"/> with parameters matching <paramrefname="constructorArguments"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> type.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no parameterless constructor exists on type <paramrefname="classToProxy"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> type.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="options"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramrefname="classToProxy"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="options"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramrefname="classToProxy"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="target">The target object, calls to which will be intercepted.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="constructorArguments">Arguments of constructor of type <paramrefname="classToProxy"/> which should be used to create a new instance of that type.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="options"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no constructor exists on type <paramrefname="classToProxy"/> with parameters matching <paramrefname="constructorArguments"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <typeparamrefname="TClass"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<typeparamname="TClass">Type of class which will be proxied.</typeparam>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <typeparamrefname="TClass"/> proxying calls to virtual members of <typeparamrefname="TClass"/> type.
</returns>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TClass"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamrefname="TClass"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamrefname="TClass"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <typeparamrefname="TClass"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<typeparamname="TClass">Type of class which will be proxied.</typeparam>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <typeparamrefname="TClass"/> proxying calls to virtual members of <typeparamrefname="TClass"/> type.
</returns>
<exceptioncref="T:System.ArgumentException">Thrown when given <typeparamrefname="TClass"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamrefname="TClass"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamrefname="TClass"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramrefname="classToProxy"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="constructorArguments">Arguments of constructor of type <paramrefname="classToProxy"/> which should be used to create a new instance of that type.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> type.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no constructor exists on type <paramrefname="classToProxy"/> with parameters matching <paramrefname="constructorArguments"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="constructorArguments">Arguments of constructor of type <paramrefname="classToProxy"/> which should be used to create a new instance of that type.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> type.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no constructor exists on type <paramrefname="classToProxy"/> with parameters matching <paramrefname="constructorArguments"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> type.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no parameterless constructor exists on type <paramrefname="classToProxy"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> type.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="options"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramrefname="classToProxy"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="options"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramrefname="classToProxy"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates proxy object intercepting calls to virtual members of type <paramrefname="classToProxy"/> on newly created instance of that type with given <paramrefname="interceptors"/>.
</summary>
<paramname="classToProxy">Type of class which will be proxied.</param>
<paramname="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
<paramname="options">The proxy generation options used to influence generated proxy type and object.</param>
<paramname="constructorArguments">Arguments of constructor of type <paramrefname="classToProxy"/> which should be used to create a new instance of that type.</param>
<paramname="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
New object of type <paramrefname="classToProxy"/> proxying calls to virtual members of <paramrefname="classToProxy"/> and <paramrefname="additionalInterfacesToProxy"/> types.
</returns>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentNullException">Thrown when given <paramrefname="options"/> object is a null reference (Nothing in Visual Basic).</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> or any of <paramrefname="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when given <paramrefname="classToProxy"/> is not a class type.</exception>
<exceptioncref="T:System.ArgumentException">Thrown when no constructor exists on type <paramrefname="classToProxy"/> with parameters matching <paramrefname="constructorArguments"/>.</exception>
<exceptioncref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramrefname="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <seecref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
Creates the proxy type for class proxy with given <paramrefname="classToProxy"/> class, implementing given <paramrefname="additionalInterfacesToProxy"/> and using provided <paramrefname="options"/>.
</summary>
<paramname="classToProxy">The base class for proxy type.</param>
<paramname="additionalInterfacesToProxy">The interfaces that proxy type should implement.</param>
<paramname="options">The options for proxy generation process.</param>
<returns><seecref="T:System.Type"/> of proxy.</returns>
Creates the proxy type for interface proxy with target for given <paramrefname="interfaceToProxy"/> interface, implementing given <paramrefname="additionalInterfacesToProxy"/> on given <paramrefname="targetType"/> and using provided <paramrefname="options"/>.
</summary>
<paramname="interfaceToProxy">The interface proxy type should implement.</param>
<paramname="additionalInterfacesToProxy">The additional interfaces proxy type should implement.</param>
<paramname="targetType">Actual type that the proxy type will encompass.</param>
<paramname="options">The options for proxy generation process.</param>
<returns><seecref="T:System.Type"/> of proxy.</returns>
Creates the proxy type for interface proxy with target interface for given <paramrefname="interfaceToProxy"/> interface, implementing given <paramrefname="additionalInterfacesToProxy"/> on given <paramrefname="interfaceToProxy"/> and using provided <paramrefname="options"/>.
</summary>
<paramname="interfaceToProxy">The interface proxy type should implement.</param>
<paramname="additionalInterfacesToProxy">The additional interfaces proxy type should implement.</param>
<paramname="options">The options for proxy generation process.</param>
<returns><seecref="T:System.Type"/> of proxy.</returns>
Creates the proxy type for interface proxy without target for given <paramrefname="interfaceToProxy"/> interface, implementing given <paramrefname="additionalInterfacesToProxy"/> and using provided <paramrefname="options"/>.
</summary>
<paramname="interfaceToProxy">The interface proxy type should implement.</param>
<paramname="additionalInterfacesToProxy">The additional interfaces proxy type should implement.</param>
<paramname="options">The options for proxy generation process.</param>
<returns><seecref="T:System.Type"/> of proxy.</returns>
Resets the <seecref="P:Castle.DynamicProxy.Serialization.ProxyObjectReference.ModuleScope"/> used for deserialization to a given <paramrefname="scope"/>.
</summary>
<paramname="scope"> The scope to be used for deserialization. </param>
<remarks>
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 <seecref="P:Castle.DynamicProxy.Serialization.ProxyObjectReference.ModuleScope"/> used for deserialization.
</summary>
<value> As <seecref="T:Castle.DynamicProxy.Serialization.ProxyObjectReference"/> 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), <seecref="T:Castle.DynamicProxy.Serialization.ProxyObjectReference"/> uses a dedicated scope instance for deserializing proxy types. This instance can be reset and set to a specific value via <seecref="M:Castle.DynamicProxy.Serialization.ProxyObjectReference.ResetScope"/> and <seecref="M:Castle.DynamicProxy.Serialization.ProxyObjectReference.SetScope(Castle.DynamicProxy.ModuleScope)"/> . </value>
Changes the target object (<seecref="P:Castle.DynamicProxy.IInvocation.InvocationTarget"/>) of current <seecref="T:Castle.DynamicProxy.IInvocation"/>.
</summary>
<paramname="target">The new value of target of invocation.</param>
<remarks>
Although the method takes <seecref="T:System.Object"/> the actual instance must be of type assignable to <seecref="P:Castle.DynamicProxy.IInvocation.TargetType"/>, otherwise an <seecref="T:System.InvalidCastException"/> will be thrown.
Also while it's technically legal to pass null reference (Nothing in Visual Basic) as <paramrefname="target"/>, 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 <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/> or a <seecref="T:System.NotImplementedException"/> will be throws.
Also while it's technically legal to pass proxy itself as <paramrefname="target"/>, this would create stack overflow.
In this case last interceptor in the pipeline mustn't call <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/> or a <seecref="T:System.InvalidOperationException"/> will be throws.
</remarks>
<exceptioncref="T:System.InvalidCastException">Thrown when <paramrefname="target"/> is not assignable to the proxied type.</exception>
Permanently changes the target object of the proxy. This does not affect target of the current invocation.
</summary>
<paramname="target">The new value of target of the proxy.</param>
<remarks>
Although the method takes <seecref="T:System.Object"/> the actual instance must be of type assignable to proxy's target type, otherwise an <seecref="T:System.InvalidCastException"/> will be thrown.
Also while it's technically legal to pass null reference (Nothing in Visual Basic) as <paramrefname="target"/>, 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 <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/> or a <seecref="T:System.NotImplementedException"/> will be throws.
Also while it's technically legal to pass proxy itself as <paramrefname="target"/>, this would create stack overflow.
In this case last interceptor in the pipeline mustn't call <seecref="M:Castle.DynamicProxy.IInvocation.Proceed"/> or a <seecref="T:System.InvalidOperationException"/> will be throws.
</remarks>
<exceptioncref="T:System.InvalidCastException">Thrown when <paramrefname="target"/> is not assignable to the proxied type.</exception>
</member>
<membername="T:Castle.DynamicProxy.IInterceptor">
<summary>
New interface that is going to be used by DynamicProxy 2
Logs a debug message with lazily constructed message. The message will be constructed only if the <seecref="P:Castle.Core.Logging.ILogger.IsDebugEnabled"/> is true.
Logs an error message with lazily constructed message. The message will be constructed only if the <seecref="P:Castle.Core.Logging.ILogger.IsErrorEnabled"/> is true.
Logs a fatal message with lazily constructed message. The message will be constructed only if the <seecref="P:Castle.Core.Logging.ILogger.IsFatalEnabled"/> is true.
Logs a info message with lazily constructed message. The message will be constructed only if the <seecref="P:Castle.Core.Logging.ILogger.IsInfoEnabled"/> is true.
Logs a warn message with lazily constructed message. The message will be constructed only if the <seecref="P:Castle.Core.Logging.ILogger.IsWarnEnabled"/> is true.
Readonly implementation of <seecref="T:System.Collections.IDictionary"/> which uses an anonymous object as its source. Uses names of properties as keys, and property values as... well - values. Keys are not case sensitive.
<paramrefname ="index"/> is less than zero. </exception>
<exceptioncref ="T:System.ArgumentException">
<paramrefname ="array"/> is multidimensional.-or- <paramrefname ="index"/> is equal to or greater than the length of <paramref
name = "array" />.-or- The number of elements in the source <seecref ="T:System.Collections.ICollection"/> is greater than the available space from <paramref
name = "index" /> to the end of the destination <paramrefname ="array"/>. </exception>
<exceptioncref ="T:System.ArgumentException">The type of the source <seecref ="T:System.Collections.ICollection"/> cannot be cast automatically to the type of the destination <paramref
Initializes a new instance of the <seecref="T:Castle.Core.Smtp.DefaultSmtpSender"/> class based on the <seecref="T:System.Net.Mail.SmtpClient"/> configuration provided in the application configuration file.
</summary>
<remarks>
This constructor is based on the default <seecref="T:System.Net.Mail.SmtpClient"/> configuration in the application configuration file.