Browse files

Upgrading to Castle Dynamic Proxy 2.2 & Castle Windsor 2.1

  • Loading branch information...
1 parent 1683cc2 commit 9a0839cdc022d378d3b8fd97bf69900a02775f3c @ayende ayende committed Feb 1, 2010
View
BIN SharedLibs/Castle.Core.dll
Binary file not shown.
View
298 SharedLibs/Castle.Core.xml
@@ -220,51 +220,188 @@
</summary>
<value>The type of the lifestyle handler.</value>
</member>
+ <member name="T:Castle.DynamicProxy.IAttributeDisassembler">
+ <summary>
+ Provides functionality for disassembling instances of attributes to CustomAttributeBuilder form, during the process of emiting new types by Dynamic Proxy.
+ </summary>
+ </member>
+ <member name="M:Castle.DynamicProxy.IAttributeDisassembler.Disassemble(System.Attribute)">
+ <summary>
+ Disassembles given attribute instance back to corresponding CustomAttributeBuilder.
+ </summary>
+ <param name="attribute">An instance of attribute to disassemble</param>
+ <returns><see cref="T:System.Reflection.Emit.CustomAttributeBuilder"/> corresponding 1 to 1 to given attribute instance, or null reference.</returns>
+ <remarks>
+ Implementers should return <see cref="T:System.Reflection.Emit.CustomAttributeBuilder"/> that corresponds to given attribute instance 1 to 1,
+ that is after calling specified constructor with specified arguments, and setting specified properties and fields with values specified
+ we should be able to get an attribute instance identical to the one passed in <paramref name="attribute"/>. Implementer can return null
+ if it wishes to opt out of replicating the attribute. Notice however, that for some cases, like attributes passed explicitly by the user
+ it is illegal to return null, and doing so will result in exception.
+ </remarks>
+ </member>
+ <member name="T:Castle.Core.Interceptor.IChangeProxyTarget">
+ <summary>
+ Exposes means to change target objects of proxies and invocations
+ </summary>
+ </member>
+ <member name="M:Castle.Core.Interceptor.IChangeProxyTarget.ChangeInvocationTarget(System.Object)">
+ <summary>
+ Changes the target object (<see cref="P:Castle.Core.Interceptor.IInvocation.InvocationTarget"/>) of current <see cref="T:Castle.Core.Interceptor.IInvocation"/>.
+ </summary>
+ <param name="target">The new value of target of invocation.</param>
+ <remarks>
+ Although the method takes <see cref="T:System.Object"/> the actual instance must be of type assignable to <see cref="P:Castle.Core.Interceptor.IInvocation.TargetType"/>, otherwise an <see cref="T:System.InvalidCastException"/> will be thrown.
+ Also while it's technically legal to pass null reference (Nothing in Visual Basic) as <paramref name="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 <see cref="M:Castle.Core.Interceptor.IInvocation.Proceed"/> or a <see cref="T:System.NotImplementedException"/> will be throws.
+ Also while it's technically legal to pass proxy itself as <paramref name="target"/>, this would create stack overflow.
+ In this case last interceptor in the pipeline mustn't call <see cref="M:Castle.Core.Interceptor.IInvocation.Proceed"/> or a <see cref="T:System.InvalidOperationException"/> will be throws.
+ </remarks>
+ <exception cref="T:System.InvalidCastException">Thrown when <paramref name="target"/> is not assignable to the proxied type.</exception>
+ </member>
+ <member name="M:Castle.Core.Interceptor.IChangeProxyTarget.ChangeProxyTarget(System.Object)">
+ <summary>
+ Permanently changes the target object of the proxy. This does not affect target of the current invocation.
+ </summary>
+ <param name="target">The new value of target of the proxy.</param>
+ <remarks>
+ Although the method takes <see cref="T:System.Object"/> the actual instance must be of type assignable to proxy's target type, otherwise an <see cref="T:System.InvalidCastException"/> will be thrown.
+ Also while it's technically legal to pass null reference (Nothing in Visual Basic) as <paramref name="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 <see cref="M:Castle.Core.Interceptor.IInvocation.Proceed"/> or a <see cref="T:System.NotImplementedException"/> will be throws.
+ Also while it's technically legal to pass proxy itself as <paramref name="target"/>, this would create stack overflow.
+ In this case last interceptor in the pipeline mustn't call <see cref="M:Castle.Core.Interceptor.IInvocation.Proceed"/> or a <see cref="T:System.InvalidOperationException"/> will be throws.
+ </remarks>
+ <exception cref="T:System.InvalidCastException">Thrown when <paramref name="target"/> is not assignable to the proxied type.</exception>
+ </member>
<member name="T:Castle.Core.Interceptor.IInterceptor">
<summary>
New interface that is going to be used by DynamicProxy 2
</summary>
</member>
+ <member name="T:Castle.Core.Interceptor.IInterceptorSelector">
+ <summary>
+ Provides an extension point that allows proxies to choose specific interceptors on
+ a per method basis.
+ </summary>
+ </member>
+ <member name="M:Castle.Core.Interceptor.IInterceptorSelector.SelectInterceptors(System.Type,System.Reflection.MethodInfo,Castle.Core.Interceptor.IInterceptor[])">
+ <summary>
+ Selects the interceptors that should intercept calls to the given <paramref name="method"/>.
+ </summary>
+ <param name="type">The type declaring the method to intercept.</param>
+ <param name="method">The method that will be intercepted.</param>
+ <param name="interceptors">All interceptors registered with the proxy.</param>
+ <returns>An array of interceptors to invoke upon calling the <paramref name="method"/>.</returns>
+ <remarks>
+ This method is called only once per proxy instance, upon the first call to the
+ <paramref name="method"/>. Either an empty array or null are valid return values to indicate
+ that no interceptor should intercept calls to the method. Although it is not advised, it is
+ legal to return other <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementations than these provided in
+ <paramref name="interceptors"/>.
+ </remarks>
+ </member>
<member name="T:Castle.Core.Interceptor.IInvocation">
<summary>
- New interface that is going to be used by DynamicProxy 2
+ Encapsulates an invocation of a proxied method.
+ </summary>
+ </member>
+ <member name="M:Castle.Core.Interceptor.IInvocation.SetArgumentValue(System.Int32,System.Object)">
+ <summary>
+ Overrides the value of an argument at the given <paramref name="index"/> with the
+ new <paramref name="value"/> provided.
</summary>
+ <remarks>
+ This method accepts an <see cref="T:System.Object"/>, however the value provided must be compatible
+ with the type of the argument defined on the method, otherwise an exception will be thrown.
+ </remarks>
+ <param name="index">The index of the argument to override.</param>
+ <param name="value">The new value for the argument.</param>
+ </member>
+ <member name="M:Castle.Core.Interceptor.IInvocation.GetArgumentValue(System.Int32)">
+ <summary>
+ Gets the value of the argument at the specified <paramref name="index"/>.
+ </summary>
+ <param name="index">The index.</param>
+ <returns>The value of the argument at the specified <paramref name="index"/>.</returns>
</member>
<member name="M:Castle.Core.Interceptor.IInvocation.GetConcreteMethod">
<summary>
- Returns the concrete instantiation of <see cref="P:Castle.Core.Interceptor.IInvocation.Method"/>, with any generic parameters bound to real types.
+ Returns the concrete instantiation of the <see cref="P:Castle.Core.Interceptor.IInvocation.Method"/>, with any generic
+ parameters bound to real types.
</summary>
- <returns>The concrete instantiation of <see cref="P:Castle.Core.Interceptor.IInvocation.Method"/>, or <see cref="P:Castle.Core.Interceptor.IInvocation.Method"/> if not a generic method.</returns>
+ <returns>
+ The concrete instantiation of the <see cref="P:Castle.Core.Interceptor.IInvocation.Method"/>, or the <see cref="P:Castle.Core.Interceptor.IInvocation.Method"/> if
+ not a generic method.
+ </returns>
<remarks>Can be slower than calling <see cref="P:Castle.Core.Interceptor.IInvocation.Method"/>.</remarks>
</member>
<member name="M:Castle.Core.Interceptor.IInvocation.GetConcreteMethodInvocationTarget">
<summary>
- Returns the concrete instantiation of <see cref="P:Castle.Core.Interceptor.IInvocation.MethodInvocationTarget"/>, with any generic parameters bound to real types.
+ Returns the concrete instantiation of <see cref="P:Castle.Core.Interceptor.IInvocation.MethodInvocationTarget"/>, with any
+ generic parameters bound to real types.
</summary>
- <returns>The concrete instantiation of <see cref="P:Castle.Core.Interceptor.IInvocation.MethodInvocationTarget"/>, or <see cref="P:Castle.Core.Interceptor.IInvocation.MethodInvocationTarget"/> if not a generic method.</returns>
+ <returns>The concrete instantiation of <see cref="P:Castle.Core.Interceptor.IInvocation.MethodInvocationTarget"/>, or
+ <see cref="P:Castle.Core.Interceptor.IInvocation.MethodInvocationTarget"/> if not a generic method.</returns>
<remarks>Can be slower than calling <see cref="P:Castle.Core.Interceptor.IInvocation.MethodInvocationTarget"/>.</remarks>
</member>
<member name="M:Castle.Core.Interceptor.IInvocation.Proceed">
<summary>
-
+ Proceeds the call to the next interceptor in line, and ultimately to the target method.
</summary>
- <returns></returns>
+ <remarks>
+ Since interface proxies without a target don't have the target implementation to proceed to,
+ it is important, that the last interceptor does not call this method, otherwise a
+ <see cref="T:System.NotImplementedException"/> will be thrown.
+ </remarks>
+ </member>
+ <member name="P:Castle.Core.Interceptor.IInvocation.Proxy">
+ <summary>
+ Gets the proxy object on which the intercepted method is invoked.
+ </summary>
+ <value>Proxy object on which the intercepted method is invoked.</value>
+ </member>
+ <member name="P:Castle.Core.Interceptor.IInvocation.InvocationTarget">
+ <summary>
+ Gets the object on which the invocation is performed. This is different from proxy object
+ because most of the time this will be the proxy target object.
+ </summary>
+ <seealso cref="T:Castle.Core.Interceptor.IChangeProxyTarget"/>
+ <value>The invocation target.</value>
+ </member>
+ <member name="P:Castle.Core.Interceptor.IInvocation.TargetType">
+ <summary>
+ Gets the type of the target object for the intercepted method.
+ </summary>
+ <value>The type of the target object.</value>
+ </member>
+ <member name="P:Castle.Core.Interceptor.IInvocation.Arguments">
+ <summary>
+ Gets the arguments that the <see cref="P:Castle.Core.Interceptor.IInvocation.Method"/> has been invoked with.
+ </summary>
+ <value>The arguments the method was invoked with.</value>
</member>
<member name="P:Castle.Core.Interceptor.IInvocation.GenericArguments">
<summary>
- The generic arguments of the method, or null if not a generic method.
+ Gets the generic arguments of the method.
</summary>
+ <value>The generic arguments, or null if not a generic method.</value>
</member>
<member name="P:Castle.Core.Interceptor.IInvocation.Method">
<summary>
-
+ Gets the <see cref="T:System.Reflection.MethodInfo"/> representing the method being invoked.
</summary>
+ <value>The <see cref="T:System.Reflection.MethodInfo"/> representing the method being invoked.</value>
</member>
<member name="P:Castle.Core.Interceptor.IInvocation.MethodInvocationTarget">
<summary>
- For interface proxies, this will point to the
- <see cref="T:System.Reflection.MethodInfo"/> on the target class
+ For interface proxies, this will point to the <see cref="T:System.Reflection.MethodInfo"/> on the target class.
</summary>
+ <value>The method invocation target.</value>
+ </member>
+ <member name="P:Castle.Core.Interceptor.IInvocation.ReturnValue">
+ <summary>
+ Gets or sets the return value of the method.
+ </summary>
+ <value>The return value of the method.</value>
</member>
<member name="T:Castle.Core.Interceptor.IOnBehalfAware">
<summary>
@@ -348,6 +485,12 @@
If the index is invalid.
</exception>
</member>
+ <member name="M:Castle.Core.Internal.Lock.Create">
+ <summary>
+ Creates a new lock.
+ </summary>
+ <returns></returns>
+ </member>
<member name="T:Castle.Core.IInitializable">
<summary>
Lifecycle interface. If implemented by a component,
@@ -2077,14 +2220,14 @@
instance in a pool instead of always creating them.
</summary>
</member>
- <member name="F:Castle.Core.LifestyleType.Custom">
+ <member name="F:Castle.Core.LifestyleType.PerWebRequest">
<summary>
- Any other logic to create/release components.
+ PerWebRequest components are created once per Http Request
</summary>
</member>
- <member name="F:Castle.Core.LifestyleType.PerWebRequest">
+ <member name="F:Castle.Core.LifestyleType.Custom">
<summary>
- PerWebRequest components are created once per Http Request
+ Any other logic to create/release components.
</summary>
</member>
<member name="T:Castle.Core.PropertiesInspectionBehavior">
@@ -2716,11 +2859,6 @@
Collection of <see cref="T:Castle.Core.ParameterModel"/>
</summary>
</member>
- <member name="M:Castle.Core.ParameterModelCollection.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:Castle.Core.ParameterModelCollection"/> class.
- </summary>
- </member>
<member name="M:Castle.Core.ParameterModelCollection.Add(System.String,System.String)">
<summary>
Adds the specified name.
@@ -3001,6 +3139,126 @@
Enable access to files on network shares
</summary>
</member>
+ <member name="T:Castle.Core.Smtp.DefaultSmtpSender">
+ <summary>
+ Default <see cref="T:Castle.Core.Smtp.IEmailSender"/> implementation.
+ </summary>
+ </member>
+ <member name="T:Castle.Core.Smtp.IEmailSender">
+ <summary>
+ Email sender abstraction.
+ </summary>
+ </member>
+ <member name="M:Castle.Core.Smtp.IEmailSender.Send(System.String,System.String,System.String,System.String)">
+ <summary>
+ Sends a mail message.
+ </summary>
+ <param name="from">From field</param>
+ <param name="to">To field</param>
+ <param name="subject">E-mail's subject</param>
+ <param name="messageText">message's body</param>
+ </member>
+ <member name="M:Castle.Core.Smtp.IEmailSender.Send(System.Net.Mail.MailMessage)">
+ <summary>
+ Sends a <see cref="T:System.Net.Mail.MailMessage">message</see>.
+ </summary>
+ <param name="message"><see cref="T:System.Net.Mail.MailMessage">Message</see> instance</param>
+ </member>
+ <member name="M:Castle.Core.Smtp.IEmailSender.Send(System.Collections.Generic.IEnumerable{System.Net.Mail.MailMessage})">
+ <summary>
+ Sends multiple <see cref="T:System.Net.Mail.MailMessage">messages</see>.
+ </summary>
+ <param name="messages">List of <see cref="T:System.Net.Mail.MailMessage">messages</see></param>
+ </member>
+ <member name="M:Castle.Core.Smtp.DefaultSmtpSender.#ctor(System.String)">
+ <summary>
+ This service implementation
+ requires a host name in order to work
+ </summary>
+ <param name="hostname">The smtp server name</param>
+ </member>
+ <member name="M:Castle.Core.Smtp.DefaultSmtpSender.Send(System.String,System.String,System.String,System.String)">
+ <summary>
+ Sends a message.
+ </summary>
+ <exception cref="T:System.ArgumentNullException">If any of the parameters is null</exception>
+ <param name="from">From field</param>
+ <param name="to">To field</param>
+ <param name="subject">e-mail's subject</param>
+ <param name="messageText">message's body</param>
+ </member>
+ <member name="M:Castle.Core.Smtp.DefaultSmtpSender.Send(System.Net.Mail.MailMessage)">
+ <summary>
+ Sends a message.
+ </summary>
+ <exception cref="T:System.ArgumentNullException">If the message is null</exception>
+ <param name="message">Message instance</param>
+ </member>
+ <member name="M:Castle.Core.Smtp.DefaultSmtpSender.Configure(System.Net.Mail.SmtpClient)">
+ <summary>
+ Configures the sender
+ with port information and eventual credential
+ informed
+ </summary>
+ <param name="smtpClient">Message instance</param>
+ </member>
+ <member name="P:Castle.Core.Smtp.DefaultSmtpSender.Port">
+ <summary>
+ Gets or sets the port used to
+ access the SMTP server
+ </summary>
+ </member>
+ <member name="P:Castle.Core.Smtp.DefaultSmtpSender.Hostname">
+ <summary>
+ Gets the hostname.
+ </summary>
+ <value>The hostname.</value>
+ </member>
+ <member name="P:Castle.Core.Smtp.DefaultSmtpSender.AsyncSend">
+ <summary>
+ Gets or sets a value which is used to
+ configure if emails are going to be sent asyncrhonously or not.
+ </summary>
+ </member>
+ <member name="P:Castle.Core.Smtp.DefaultSmtpSender.Timeout">
+ <summary>
+ Gets or sets a value that specifies
+ the amount of time after which a synchronous Send call times out.
+ </summary>
+ </member>
+ <member name="P:Castle.Core.Smtp.DefaultSmtpSender.UseSsl">
+ <summary>
+ Gets or sets a value indicating whether the email should be sent using
+ a secure communication channel.
+ </summary>
+ <value><c>true</c> if should use SSL; otherwise, <c>false</c>.</value>
+ </member>
+ <member name="P:Castle.Core.Smtp.DefaultSmtpSender.Domain">
+ <summary>
+ Gets or sets the domain.
+ </summary>
+ <value>The domain.</value>
+ </member>
+ <member name="P:Castle.Core.Smtp.DefaultSmtpSender.UserName">
+ <summary>
+ Gets or sets the name of the user.
+ </summary>
+ <value>The name of the user.</value>
+ </member>
+ <member name="P:Castle.Core.Smtp.DefaultSmtpSender.Password">
+ <summary>
+ Gets or sets the password.
+ </summary>
+ <value>The password.</value>
+ </member>
+ <member name="P:Castle.Core.Smtp.DefaultSmtpSender.HasCredentials">
+ <summary>
+ Gets a value indicating whether credentials were informed.
+ </summary>
+ <value>
+ <see langword="true"/> if this instance has credentials; otherwise, <see langword="false"/>.
+ </value>
+ </member>
<member name="T:Castle.Core.IServiceEnabledComponent">
<summary>
Defines that the implementation wants a
View
BIN SharedLibs/Castle.DynamicProxy2.dll
Binary file not shown.
View
560 SharedLibs/Castle.DynamicProxy2.xml
@@ -4,42 +4,42 @@
<name>Castle.DynamicProxy2</name>
</assembly>
<members>
- <member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.IndirectReference">
+ <member name="M:Castle.DynamicProxy.Contributors.MembersCollector.IsAccessible(System.Reflection.MethodBase)">
<summary>
- Wraps a reference that is passed
- ByRef and provides indirect load/store support.
+ Checks if the method is public or protected.
</summary>
+ <param name="method"></param>
+ <returns></returns>
</member>
- <member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.NewArrayExpression">
+ <member name="M:Castle.DynamicProxy.Contributors.MembersCollector.AcceptMethod(System.Reflection.MethodInfo,System.Boolean,Castle.DynamicProxy.IProxyGenerationHook)">
<summary>
- Summary description for NewArrayExpression.
+ Performs some basic screening and invokes the <see cref="T:Castle.DynamicProxy.IProxyGenerationHook"/>
+ to select methods.
</summary>
+ <param name="method"></param>
+ <param name="onlyVirtuals"></param>
+ <param name="hook"></param>
+ <returns></returns>
</member>
- <member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.ReferencesToObjectArrayExpression">
+ <member name="T:Castle.DynamicProxy.Contributors.ITypeContributor">
<summary>
-
+ Interface describing elements composing generated type
</summary>
</member>
- <member name="M:Castle.DynamicProxy.Generators.Emitters.CustomAttributeUtil.InitializeConstructorArgs(System.Type,System.Attribute,System.Object[],System.Reflection.ParameterInfo[])">
+ <member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.IndirectReference">
<summary>
- Here we try to match a constructor argument to its value.
- Since we can't get the values from the assembly, we use some heuristics to get it.
- a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument
- b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string).
+ Wraps a reference that is passed
+ ByRef and provides indirect load/store support.
</summary>
</member>
- <member name="M:Castle.DynamicProxy.Generators.Emitters.CustomAttributeUtil.ReplaceIfBetterMatch(System.Reflection.ParameterInfo,System.Reflection.PropertyInfo,System.Reflection.PropertyInfo)">
+ <member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.NewArrayExpression">
<summary>
- We have the following rules here.
- Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that
- we can convert it.
+ Summary description for NewArrayExpression.
</summary>
</member>
- <member name="M:Castle.DynamicProxy.Generators.Emitters.CustomAttributeUtil.ConvertValue(System.Object,System.Type)">
+ <member name="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.ReferencesToObjectArrayExpression">
<summary>
- Attributes can only accept simple types, so we return null for null,
- if the value is passed as string we call to string (should help with converting),
- otherwise, we use the value as is (enums, integer, etc).
+
</summary>
</member>
<member name="T:Castle.DynamicProxy.Generators.Emitters.LdcOpCodesDictionary">
@@ -103,161 +103,138 @@
for the type of primitive value to be stored indirectly.
</summary>
</member>
- <member name="T:Castle.DynamicProxy.Generators.BaseProxyGenerator">
- <summary>
- Base class that exposes the common functionalities
- to proxy generation.
- </summary>
- <remarks>
- TODO:
- - Add tests and fixes for 'leaking this' problem
- </remarks>
- </member>
- <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.GetProxyTargetReference">
+ <member name="M:Castle.DynamicProxy.Generators.Emitters.TypeUtil.GetAllInterfaces(System.Type[])">
<summary>
- Used by dinamically implement <see cref="T:Castle.Core.Interceptor.IProxyTargetAccessor"/>
+ Returns list of all unique interfaces implemented given types, including their base interfaces.
</summary>
+ <param name="types"></param>
<returns></returns>
</member>
- <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.GenerateParameterlessConstructor(Castle.DynamicProxy.Generators.Emitters.ClassEmitter,System.Type,Castle.DynamicProxy.Generators.Emitters.SimpleAST.FieldReference)">
+ <member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.HandleError(System.Type,System.Exception)">
<summary>
- Generates a parameters constructor that initializes the proxy
- state with <see cref="T:Castle.Core.Interceptor.StandardInterceptor"/> just to make it non-null.
- <para>
- This constructor is important to allow proxies to be XML serializable
- </para>
- </summary>
- </member>
- <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.BuildInvocationNestedType(Castle.DynamicProxy.Generators.Emitters.ClassEmitter,System.Type,System.Type,System.Reflection.MethodInfo,System.Reflection.MethodInfo,Castle.DynamicProxy.Generators.ConstructorVersion)">
- <summary>
- If callbackMethod is null the InvokeOnTarget implementation
- is just the code to throw an exception
+ Handles error during disassembly process
</summary>
- <param name="emitter"></param>
- <param name="targetType"></param>
- <param name="targetForInvocation"></param>
- <param name="methodInfo"></param>
- <param name="callbackMethod"></param>
- <param name="version"></param>
- <returns></returns>
+ <param name="attributeType">Type of the attribute being disassembled</param>
+ <param name="exception">Exception thrown during the process</param>
+ <returns>usually null, or (re)throws the exception</returns>
</member>
- <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.BuildInvocationNestedType(Castle.DynamicProxy.Generators.Emitters.ClassEmitter,System.Type,System.Type,System.Reflection.MethodInfo,System.Reflection.MethodInfo,Castle.DynamicProxy.Generators.ConstructorVersion,System.Boolean)">
+ <member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.InitializeConstructorArgs(System.Type,System.Attribute,System.Object[],System.Reflection.ParameterInfo[])">
<summary>
- If callbackMethod is null the InvokeOnTarget implementation
- is just the code to throw an exception
+ Here we try to match a constructor argument to its value.
+ Since we can't get the values from the assembly, we use some heuristics to get it.
+ a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument
+ b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string).
</summary>
- <param name="emitter"></param>
- <param name="targetType"></param>
- <param name="targetForInvocation"></param>
- <param name="methodInfo"></param>
- <param name="callbackMethod"></param>
- <param name="version"></param>
- <param name="allowChangeTarget">If true the invocation will implement the IChangeProxyTarget interface</param>
- <returns></returns>
</member>
- <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.CreateIInvocationConstructor(System.Type,Castle.DynamicProxy.Generators.Emitters.NestedClassEmitter,Castle.DynamicProxy.Generators.Emitters.SimpleAST.FieldReference,Castle.DynamicProxy.Generators.ConstructorVersion)">
+ <member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.ReplaceIfBetterMatch(System.Reflection.ParameterInfo,System.Reflection.PropertyInfo,System.Reflection.PropertyInfo)">
<summary>
- Generates the constructor for the nested class that extends
- <see cref="T:Castle.DynamicProxy.AbstractInvocation"/>
+ We have the following rules here.
+ Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that
+ we can convert it.
</summary>
- <param name="targetFieldType"></param>
- <param name="nested"></param>
- <param name="targetField"></param>
- <param name="version"></param>
</member>
- <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.CreateInitializeCacheMethodBody(System.Type,System.Reflection.MethodInfo[],Castle.DynamicProxy.Generators.Emitters.ClassEmitter,Castle.DynamicProxy.Generators.Emitters.ConstructorEmitter)">
+ <member name="M:Castle.DynamicProxy.Generators.AttributeDisassembler.ConvertValue(System.Object,System.Type)">
<summary>
- Improvement: this cache should be static. We should generate a
- type constructor instead
+ Attributes can only accept simple types, so we return null for null,
+ if the value is passed as string we call to string (should help with converting),
+ otherwise, we use the value as is (enums, integer, etc).
</summary>
</member>
- <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.AcceptMethod(System.Reflection.MethodInfo,System.Boolean)">
+ <member name="T:Castle.DynamicProxy.Generators.BaseProxyGenerator">
<summary>
- Performs some basic screening and invokes the <see cref="T:Castle.DynamicProxy.IProxyGenerationHook"/>
- to select methods.
+ Base class that exposes the common functionalities
+ to proxy generation.
</summary>
- <param name="method"></param>
- <param name="onlyVirtuals"></param>
- <returns></returns>
</member>
- <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.IsAccessible(System.Reflection.MethodInfo)">
+ <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.GenerateParameterlessConstructor(Castle.DynamicProxy.Generators.Emitters.ClassEmitter,System.Type,Castle.DynamicProxy.Generators.Emitters.SimpleAST.FieldReference)">
<summary>
- Checks if the method is public or protected.
+ Generates a parameters constructor that initializes the proxy
+ state with <see cref="T:Castle.Core.Interceptor.StandardInterceptor"/> just to make it non-null.
+ <para>
+ This constructor is important to allow proxies to be XML serializable
+ </para>
</summary>
- <param name="method"></param>
- <returns></returns>
</member>
- <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.ShouldSkipAttributeReplication(System.Attribute)">
+ <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.AddMappingNoCheck(System.Type,Castle.DynamicProxy.Contributors.ITypeContributor,System.Collections.Generic.IDictionary{System.Type,Castle.DynamicProxy.Contributors.ITypeContributor})">
<summary>
- Attributes should be replicated if they are non-inheritable,
- but there are some special cases where the attributes means
- something to the CLR, where they should be skipped.
+ It is safe to add mapping (no mapping for the interface exists)
</summary>
+ <param name="implementer"></param>
+ <param name="interface"></param>
+ <param name="mapping"></param>
</member>
- <member name="M:Castle.DynamicProxy.Generators.BaseProxyGenerator.ShouldCreateNewSlot(System.Reflection.MethodInfo)">
+ <member name="M:Castle.DynamicProxy.Generators.CacheKey.#ctor(System.Reflection.MemberInfo,System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)">
<summary>
- Checks if the method has the same signature as a method that was marked as
- one that should generate a new vtable slot.
+ Initializes a new instance of the <see cref="T:Castle.DynamicProxy.Generators.CacheKey"/> class.
</summary>
+ <param name="target">Target element. This is either target type or target method for invocation types.</param>
+ <param name="type">The type of the proxy. This is base type for invocation types.</param>
+ <param name="interfaces">The interfaces.</param>
+ <param name="options">The options.</param>
</member>
<member name="M:Castle.DynamicProxy.Generators.CacheKey.#ctor(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)">
<summary>
Initializes a new instance of the <see cref="T:Castle.DynamicProxy.Generators.CacheKey"/> class.
</summary>
- <param name="targetType">Type of the target.</param>
+ <param name="target">Type of the target.</param>
<param name="interfaces">The interfaces.</param>
<param name="options">The options.</param>
</member>
- <member name="T:Castle.DynamicProxy.Generators.ClassProxyGenerator">
+ <member name="M:Castle.DynamicProxy.Generators.InvocationTypeGenerator.GetCtorArgumentsAndBaseCtorToCall(System.Type,Castle.DynamicProxy.ProxyGenerationOptions,System.Reflection.ConstructorInfo@)">
<summary>
-
+ Generates the constructor for the class that extends
+ <see cref="T:Castle.DynamicProxy.AbstractInvocation"/>
</summary>
+ <param name="targetFieldType"></param>
+ <param name="proxyGenerationOptions"></param>
+ <param name="baseConstructor"></param>
</member>
- <member name="M:Castle.DynamicProxy.Generators.EventToGenerate.#ctor(Castle.DynamicProxy.Generators.Emitters.EventEmitter,System.Reflection.MethodInfo,System.Reflection.MethodInfo,System.Reflection.EventAttributes)">
+ <member name="T:Castle.DynamicProxy.Generators.ClassProxyGenerator">
<summary>
- Initializes a new instance of the <see cref="T:Castle.DynamicProxy.Generators.EventToGenerate"/> class.
+
</summary>
- <param name="emitter">The emitter.</param>
- <param name="addMethod">The add method.</param>
- <param name="removeMethod">The remove method.</param>
- <param name="attributes">The attributes.</param>
</member>
- <member name="T:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator">
+ <member name="T:Castle.DynamicProxy.Generators.INamingScope">
<summary>
-
+ Represents the scope of uniquenes of names for types and their members
</summary>
</member>
- <member name="M:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.FindMethodOnTargetType(System.Reflection.MethodInfo,System.Type,System.Boolean)">
+ <member name="M:Castle.DynamicProxy.Generators.INamingScope.GetUniqueName(System.String)">
<summary>
- Finds the type of the method on target.
+ Gets a unique name based on <paramref name="suggestedName"/>
</summary>
- <param name="methodOnInterface">The method on interface.</param>
- <param name="proxyTargetType">Type of the proxy target.</param>
- /// <param name="checkMixins">if set to <c>true</c> will check implementation on mixins.</param>
- <returns></returns>
+ <param name="suggestedName">Name suggested by the caller</param>
+ <returns>Unique name based on <paramref name="suggestedName"/>.</returns>
+ <remarks>
+ Implementers should provide name as closely resembling <paramref name="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 <see cref="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.
+ </remarks>
</member>
- <member name="M:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.IsTypeEquivalent(System.Type,System.Type)">
+ <member name="M:Castle.DynamicProxy.Generators.INamingScope.SafeSubScope">
<summary>
- Checks whether the given types are the same. This is
- more complicated than it looks.
+ Returns new, disposable naming scope. It is responsibilty of the caller to make sure that no naming collision
+ with enclosing scope, or other subscopes is possible.
</summary>
- <param name="sourceType"></param>
- <param name="targetType"></param>
- <returns></returns>
+ <returns>New naming scope.</returns>
</member>
- <member name="M:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.IsMethodEquivalent(System.Reflection.MethodInfo,System.Reflection.MethodInfo)">
+ <member name="T:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator">
<summary>
- Checks whether the given methods are the same.
+
</summary>
- <param name="methodInfo"></param>
- <param name="methodOnInterface"></param>
- <returns>True if the methods are the same.</returns>
</member>
- <member name="T:Castle.DynamicProxy.Generators.InterfaceGeneratorType">
+ <member name="M:Castle.DynamicProxy.Generators.MetaEvent.#ctor(System.String,System.Type,System.Type,Castle.DynamicProxy.Generators.MetaMethod,Castle.DynamicProxy.Generators.MetaMethod,System.Reflection.EventAttributes)">
<summary>
- This is used by the ProxyObjectReference class durin de-serialiation, to know
- which generator it should use
+ Initializes a new instance of the <see cref="T:Castle.DynamicProxy.Generators.MetaEvent"/> class.
</summary>
+ <param name="name">The name.</param>
+ <param name="declaringType">Type declaring the original event being overriten, or null.</param>
+ <param name="eventDelegateType"></param>
+ <param name="adder">The add method.</param>
+ <param name="remover">The remove method.</param>
+ <param name="attributes">The attributes.</param>
</member>
<member name="T:Castle.DynamicProxy.Generators.MethodFinder">
<summary>
@@ -292,6 +269,41 @@
might use more than one scope at the same time), <see cref="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 <see cref="M:Castle.DynamicProxy.Serialization.ProxyObjectReference.ResetScope"/> and <see cref="M:Castle.DynamicProxy.Serialization.ProxyObjectReference.SetScope(Castle.DynamicProxy.ModuleScope)"/>.</value>
</member>
+ <member name="T:Castle.DynamicProxy.Tokens.InvocationMethods">
+ <summary>
+ Holds <see cref="T:System.Reflection.MethodInfo"/> objects representing methods of <see cref="T:Castle.DynamicProxy.AbstractInvocation"/> class.
+ </summary>
+ </member>
+ <member name="T:Castle.DynamicProxy.Tokens.SerializationInfoMethods">
+ <summary>
+ Holds <see cref="T:System.Reflection.MethodInfo"/> objects representing methods of <see cref="T:System.Runtime.Serialization.SerializationInfo"/> class.
+ </summary>
+ </member>
+ <member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.AddValue_Bool">
+ <summary>
+ <see cref="M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Boolean)"/>
+ </summary>
+ </member>
+ <member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.AddValue_Int32">
+ <summary>
+ <see cref="M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Int32)"/>
+ </summary>
+ </member>
+ <member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.AddValue_Object">
+ <summary>
+ <see cref="M:System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.Object)"/>
+ </summary>
+ </member>
+ <member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.GetValue">
+ <summary>
+ <see cref="M:System.Runtime.Serialization.SerializationInfo.GetValue(System.String,System.Type)"/>
+ </summary>
+ </member>
+ <member name="F:Castle.DynamicProxy.Tokens.SerializationInfoMethods.SetType">
+ <summary>
+ <see cref="M:System.Runtime.Serialization.SerializationInfo.SetType(System.Type)"/>
+ </summary>
+ </member>
<member name="T:Castle.DynamicProxy.IProxyGenerationHook">
<summary>
Used during the target type inspection process. Implementors have a chance to customize the
@@ -323,6 +335,24 @@
Invoked by the generation process to notify that the whole process has completed.
</summary>
</member>
+ <member name="M:Castle.DynamicProxy.AttributeUtil.AddDisassembler``1(Castle.DynamicProxy.IAttributeDisassembler)">
+ <summary>
+ Registers custom disassembler to handle disassembly of specified type of attributes.
+ </summary>
+ <typeparam name="TAttribute">Type of attributes to handle</typeparam>
+ <param name="disassembler">Disassembler converting existing instances of Attributes to CustomAttributeBuilders</param>
+ <remarks>
+ When disassembling an attribute Dynamic Proxy will first check if an custom disassembler has been registered to handle attributes of that type,
+ and if none is found, it'll use the <see cref="P:Castle.DynamicProxy.AttributeUtil.FallbackDisassembler"/>.
+ </remarks>
+ </member>
+ <member name="M:Castle.DynamicProxy.AttributeUtil.ShouldSkipAttributeReplication(System.Type)">
+ <summary>
+ Attributes should be replicated if they are non-inheritable,
+ but there are some special cases where the attributes means
+ something to the CLR, where they should be skipped.
+ </summary>
+ </member>
<member name="T:Castle.DynamicProxy.CacheMappingsAttribute">
<summary>
Applied to the assemblies saved by <see cref="T:Castle.DynamicProxy.ModuleScope"/> in order to persist the cache data included in the persisted assembly.
@@ -369,6 +399,24 @@
pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception>
<seealso cref="T:Castle.DynamicProxy.Generators.ClassProxyGenerator"/>
</member>
+ <member name="M:Castle.DynamicProxy.IProxyBuilder.CreateClassProxyType(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)">
+ <summary>
+ Creates a proxy type for given <paramref name="classToProxy"/>, implementing <paramref name="additionalInterfacesToProxy"/>, using <paramref name="options"/> provided.
+ </summary>
+ <param name="classToProxy">The class type to proxy.</param>
+ <param name="additionalInterfacesToProxy">Additional interface types to proxy.</param>
+ <param name="options">The proxy generation options.</param>
+ <returns>The generated proxy type.</returns>
+ <remarks>
+ 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 <see cref="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)"/> method.)
+ </remarks>
+ <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception>
+ <exception cref="T:Castle.DynamicProxy.Generators.GeneratorException">Thrown when <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is not public.
+ Note that to avoid this exception, you can mark offending type internal, and define <see cref="T:System.Runtime.CompilerServices.InternalsVisibleToAttribute"/>
+ pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception>
+ <seealso cref="T:Castle.DynamicProxy.Generators.ClassProxyGenerator"/>
+ </member>
<member name="M:Castle.DynamicProxy.IProxyBuilder.CreateInterfaceProxyTypeWithTarget(System.Type,System.Type[],System.Type,Castle.DynamicProxy.ProxyGenerationOptions)">
<summary>
Creates a proxy type that proxies calls to <paramref name="interfaceToProxy"/> members on <paramref name="targetType"/>, implementing <paramref name="additionalInterfacesToProxy"/>, using <paramref name="options"/> provided.
@@ -424,6 +472,11 @@
pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate.</exception>
<seealso cref="T:Castle.DynamicProxy.Generators.InterfaceProxyWithTargetInterfaceGenerator"/>
</member>
+ <member name="P:Castle.DynamicProxy.IProxyBuilder.Logger">
+ <summary>
+ Gets or sets the <see cref="T:Castle.Core.Logging.ILogger"/> that this <see cref="T:Castle.DynamicProxy.ProxyGenerator"/> logs to.
+ </summary>
+ </member>
<member name="P:Castle.DynamicProxy.IProxyBuilder.ModuleScope">
<summary>
Gets the <see cref="P:Castle.DynamicProxy.IProxyBuilder.ModuleScope"/> associated with this builder.
@@ -441,33 +494,6 @@
</summary>
<param name="scope">The module scope for generated proxy types.</param>
</member>
- <member name="T:Castle.DynamicProxy.IInterceptorSelector">
- <summary>
- Provides an extension point that allows proxies to choose specific interceptors on
- a per method basis.
- </summary>
- </member>
- <member name="M:Castle.DynamicProxy.IInterceptorSelector.SelectInterceptors(System.Type,System.Reflection.MethodInfo,Castle.Core.Interceptor.IInterceptor[])">
- <summary>
- Selects the interceptors that should intercept calls to the given <paramref name="method"/>.
- </summary>
- <param name="type">The type declaring the method to intercept.</param>
- <param name="method">The method that will be intercepted.</param>
- <param name="interceptors">All interceptors registered with the proxy.</param>
- <returns>An array of interceptors to invoke upon calling the <paramref name="method"/>.</returns>
- <remarks>
- This method is called only once per proxy instance, upon the first call to the
- <paramref name="method"/>. Either an empty array or null are valid return values to indicate
- that no interceptor should intercept calls to the method. Although it is not advised, it is
- legal to return other <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementations than these provided in
- <paramref name="interceptors"/>. A better way to do this, is by passing all the required
- interceptors to the appropriate method of <see cref="T:Castle.DynamicProxy.ProxyGenerator"/>. You can use this
- method to influence the order in which interceptors will be called, by reordering the array.
- Returning an array containing null references (Nothing in Visual Basic) is not legal,
- and will result in a runtime exception.
- </remarks>
- <seealso cref="T:Castle.DynamicProxy.ProxyGenerationOptions"/>
- </member>
<member name="M:Castle.DynamicProxy.InternalsHelper.IsInternalToDynamicProxy(System.Reflection.Assembly)">
<summary>
Determines whether this assembly has internals visible to dynamic proxy.
@@ -532,6 +558,18 @@
<param name="weakAssemblyName">The simple name of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
<param name="weakModulePath">The path and file name of the manifest module of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
</member>
+ <member name="M:Castle.DynamicProxy.ModuleScope.#ctor(System.Boolean,Castle.DynamicProxy.Generators.INamingScope,System.String,System.String,System.String,System.String)">
+ <summary>
+ Initializes a new instance of the <see cref="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>
+ <param name="savePhysicalAssembly">If set to <c>true</c> saves the generated module.</param>
+ <param name="namingScope">Naming scope used to provide unique names to generated types and their members (usually via sub-scopes).</param>
+ <param name="strongAssemblyName">The simple name of the strong-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
+ <param name="strongModulePath">The path and file name of the manifest module of the strong-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
+ <param name="weakAssemblyName">The simple name of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
+ <param name="weakModulePath">The path and file name of the manifest module of the weak-named assembly generated by this <see cref="T:Castle.DynamicProxy.ModuleScope"/>.</param>
+ </member>
<member name="M:Castle.DynamicProxy.ModuleScope.GetFromCache(Castle.DynamicProxy.Generators.CacheKey)">
<summary>
Returns a type from this scope's type cache, or null if the key cannot be found.
@@ -619,7 +657,7 @@
to avoid the performance hit associated with proxy generation.
</remarks>
</member>
- <member name="P:Castle.DynamicProxy.ModuleScope.RWLock">
+ <member name="P:Castle.DynamicProxy.ModuleScope.Lock">
<summary>
Users of this <see cref="T:Castle.DynamicProxy.ModuleScope"/> should use this lock when accessing the cache.
</summary>
@@ -726,11 +764,13 @@
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
<remarks>
+ This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
+ use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.Core.Interceptor.IInterceptor[])"/> method.
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
</member>
- <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget``1(System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTarget``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
<summary>
Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>.
</summary>
@@ -747,6 +787,8 @@
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
<remarks>
+ This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
+ use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])"/> method.
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
@@ -770,6 +812,8 @@
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
<remarks>
+ This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
+ use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.Core.Interceptor.IInterceptor[])"/> method.
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
@@ -794,6 +838,8 @@
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
<remarks>
+ This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
+ use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])"/> method.
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
@@ -818,6 +864,8 @@
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
<remarks>
+ This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
+ use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.Core.Interceptor.IInterceptor[])"/> method.
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
@@ -843,6 +891,8 @@
<exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
<remarks>
+ This method generates new proxy type for each type of <paramref name="target"/>, which affects performance. If you don't want to proxy types differently depending on the type of the target
+ use <see cref="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])"/> method.
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
@@ -871,6 +921,74 @@
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
</member>
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.Core.Interceptor.IInterceptor[])">
+ <summary>
+ Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>.
+ Interceptors can use <see cref="T:Castle.Core.Interceptor.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>.
+ </summary>
+ <typeparam name="TInterface">Type of the interface implemented by <paramref name="target"/> which will be proxied.</typeparam>
+ <param name="target">The target object, calls to which will be intercepted.</param>
+ <param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
+ <returns>
+ Object proxying calls to members of <typeparamref name="TInterface"/> type on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor.
+ </returns>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception>
+ <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
+ <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
+ <remarks>
+ This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
+ As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
+ </remarks>
+ </member>
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface``1(``0,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
+ <summary>
+ Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>.
+ Interceptors can use <see cref="T:Castle.Core.Interceptor.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>.
+ </summary>
+ <typeparam name="TInterface">Type of the interface implemented by <paramref name="target"/> which will be proxied.</typeparam>
+ <param name="target">The target object, calls to which will be intercepted.</param>
+ <param name="options">The proxy generation options used to influence generated proxy type and object.</param>
+ <param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
+ <returns>
+ Object proxying calls to members of <typeparamref name="TInterface"/> type on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor.
+ </returns>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TInterface"/> is not an interface type.</exception>
+ <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
+ <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
+ <remarks>
+ This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
+ As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
+ </remarks>
+ </member>
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Type[],System.Object,Castle.Core.Interceptor.IInterceptor[])">
+ <summary>
+ Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>.
+ Interceptors can use <see cref="T:Castle.Core.Interceptor.IChangeProxyTarget"/> interface to provide other target for method invocation than default <paramref name="target"/>.
+ </summary>
+ <param name="interfaceToProxy">Type of the interface implemented by <paramref name="target"/> which will be proxied.</param>
+ <param name="target">The target object, calls to which will be intercepted.</param>
+ <param name="additionalInterfacesToProxy">Additional interface types. Calls to their members will be proxied as well.</param>
+ <param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
+ <returns>
+ Object proxying calls to members of <paramref name="interfaceToProxy"/> and <paramref name="additionalInterfacesToProxy"/> types on <paramref name="target"/> object or alternative implementation swapped at runtime by an interceptor.
+ </returns>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="target"/> object is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="target"/> does not implement <paramref name="interfaceToProxy"/> interface.</exception>
+ <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on actual type of <paramref name="target"/> object.</exception>
+ <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of actual type of <paramref name="target"/> throws an exception.</exception>
+ <remarks>
+ This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
+ As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
+ </remarks>
+ </member>
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithTargetInterface(System.Type,System.Object,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
<summary>
Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on <paramref name="target"/> object with given <paramref name="interceptors"/>.
@@ -931,11 +1049,12 @@
<returns>
Object proxying calls to members of <typeparamref name="TInterface"/> types on generated target object.
</returns>
- <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptor"/> object is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptor"/> array is a null reference (Nothing in Visual Basic).</exception>
<exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="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 <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementations.
They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.Core.Interceptor.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
+ As a result of that also at least one <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementation must be provided.
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
@@ -959,17 +1078,37 @@
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
</member>
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget``1(Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
+ <summary>
+ Creates proxy object intercepting calls to members of interface <typeparamref name="TInterface"/> on target object generated at runtime with given <paramref name="interceptors"/>.
+ </summary>
+ <typeparam name="TInterface">Type of the interface which will be proxied.</typeparam>
+ <param name="options">The proxy generation options used to influence generated proxy type and object.</param>
+ <param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
+ <returns>
+ Object proxying calls to members of <typeparamref name="TInterface"/> types on generated target object.
+ </returns>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="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 <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementations.
+ They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call <see cref="M:Castle.Core.Interceptor.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
+ As a result of that also at least one <see cref="T:Castle.Core.Interceptor.IInterceptor"/> implementation must be provided.
+ This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
+ As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
+ </remarks>
+ </member>
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,Castle.Core.Interceptor.IInterceptor)">
<summary>
Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptor"/>.
</summary>
<param name="interfaceToProxy">Type of the interface which will be proxied.</param>
- <param name="interceptor">The interceptor called during the invocation of proxied methods.</param>
+ <param name="interceptor">The interceptors called during the invocation of proxied methods.</param>
<returns>
Object proxying calls to members of <paramref name="interfaceToProxy"/> type on generated target object.
</returns>
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
- <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptor"/> object is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptor"/> array is a null reference (Nothing in Visual Basic).</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is not an interface type.</exception>
<remarks>
@@ -1020,6 +1159,26 @@
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
</member>
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
+ <summary>
+ Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptors"/>.
+ </summary>
+ <param name="interfaceToProxy">Type of the interface which will be proxied.</param>
+ <param name="options">The proxy generation options used to influence generated proxy type and object.</param>
+ <param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
+ <returns>
+ Object proxying calls to members of <paramref name="interfaceToProxy"/> on generated target object.
+ </returns>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interfaceToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="interceptors"/> array is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="interfaceToProxy"/> is a generic type definition.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="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 <see cref="M:Castle.Core.Interceptor.IInvocation.Proceed"/>, since there's no actual implementation to proceed with.
+ This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
+ As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
+ </remarks>
+ </member>
<member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
<summary>
Creates proxy object intercepting calls to members of interface <paramref name="interfaceToProxy"/> on target object generated at runtime with given <paramref name="interceptors"/>.
@@ -1052,27 +1211,26 @@
New object of type <typeparamref name="TClass"/> proxying calls to virtual members of <typeparamref name="TClass"/> type.
</returns>
<exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TClass"/> is not a class type.</exception>
- <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on type <typeparamref name="TClass"/>.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamref name="TClass"/>.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamref name="TClass"/> throws an exception.</exception>
<remarks>
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
</remarks>
</member>
- <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,Castle.Core.Interceptor.IInterceptor[])">
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy``1(Castle.DynamicProxy.ProxyGenerationOptions,Castle.Core.Interceptor.IInterceptor[])">
<summary>
- Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>.
+ Creates proxy object intercepting calls to virtual members of type <typeparamref name="TClass"/> on newly created instance of that type with given <paramref name="interceptors"/>.
</summary>
- <param name="classToProxy">Type of class which will be proxied.</param>
+ <typeparam name="TClass">Type of class which will be proxied.</typeparam>
+ <param name="options">The proxy generation options used to influence generated proxy type and object.</param>
<param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
<returns>
- New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type.
+ New object of type <typeparamref name="TClass"/> proxying calls to virtual members of <typeparamref name="TClass"/> type.
</returns>
- <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
- <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
- <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
- <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
- <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <typeparamref name="TClass"/> is not a class type.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <typeparamref name="TClass"/>.</exception>
+ <exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <typeparamref name="TClass"/> throws an exception.</exception>
<remarks>
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
@@ -1091,7 +1249,7 @@
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
- <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
@@ -1111,7 +1269,67 @@
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
- <exception cref="T:System.MissingMethodException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception>
+ <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
+ <remarks>
+ This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
+ As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
+ </remarks>
+ </member>
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,Castle.DynamicProxy.ProxyGenerationOptions,System.Object[],Castle.Core.Interceptor.IInterceptor[])">
+ <summary>
+ Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>.
+ </summary>
+ <param name="classToProxy">Type of class which will be proxied.</param>
+ <param name="options">The proxy generation options used to influence generated proxy type and object.</param>
+ <param name="constructorArguments">Arguments of constructor of type <paramref name="classToProxy"/> which should be used to create a new instance of that type.</param>
+ <param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
+ <returns>
+ New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type.
+ </returns>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception>
+ <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
+ <remarks>
+ This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
+ As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
+ </remarks>
+ </member>
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,System.Object[],Castle.Core.Interceptor.IInterceptor[])">
+ <summary>
+ Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>.
+ </summary>
+ <param name="classToProxy">Type of class which will be proxied.</param>
+ <param name="constructorArguments">Arguments of constructor of type <paramref name="classToProxy"/> which should be used to create a new instance of that type.</param>
+ <param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
+ <returns>
+ New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type.
+ </returns>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception>
+ <exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
+ <remarks>
+ This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
+ As such caller should expect any type of exception that given <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation may throw.
+ </remarks>
+ </member>
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(System.Type,Castle.Core.Interceptor.IInterceptor[])">
+ <summary>
+ Creates proxy object intercepting calls to virtual members of type <paramref name="classToProxy"/> on newly created instance of that type with given <paramref name="interceptors"/>.
+ </summary>
+ <param name="classToProxy">Type of class which will be proxied.</param>
+ <param name="interceptors">The interceptors called during the invocation of proxied methods.</param>
+ <returns>
+ New object of type <paramref name="classToProxy"/> proxying calls to virtual members of <paramref name="classToProxy"/> type.
+ </returns>
+ <exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="classToProxy"/> object is a null reference (Nothing in Visual Basic).</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when no parameterless constructor exists on type <paramref name="classToProxy"/>.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
@@ -1132,7 +1350,7 @@
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is a generic type definition.</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
- <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
@@ -1154,7 +1372,7 @@
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
- <exception cref="T:System.MissingMethodException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when no default constructor exists on type <paramref name="classToProxy"/>.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when default constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
@@ -1177,7 +1395,7 @@
<exception cref="T:System.ArgumentNullException">Thrown when given <paramref name="options"/> object is a null reference (Nothing in Visual Basic).</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> or any of <paramref name="additionalInterfacesToProxy"/> is a generic type definition.</exception>
<exception cref="T:System.ArgumentException">Thrown when given <paramref name="classToProxy"/> is not a class type.</exception>
- <exception cref="T:System.MissingMethodException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception>
+ <exception cref="T:System.ArgumentException">Thrown when no constructor exists on type <paramref name="classToProxy"/> with parameters matching <paramref name="constructorArguments"/>.</exception>
<exception cref="T:System.Reflection.TargetInvocationException">Thrown when constructor of type <paramref name="classToProxy"/> throws an exception.</exception>
<remarks>
This method uses <see cref="T:Castle.DynamicProxy.IProxyBuilder"/> implementation to generate a proxy type.
@@ -1203,13 +1421,12 @@
<param name="options">The options for proxy generation process.</param>
<returns><see cref="T:System.Type"/> of proxy.</returns>
</member>
- <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithTargetInterface(System.Type,System.Type[],System.Type,Castle.DynamicProxy.ProxyGenerationOptions)">
+ <member name="M:Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithTargetInterface(System.Type,System.Type[],Castle.DynamicProxy.ProxyGenerationOptions)">
<summary>
Creates the proxy type for interface proxy with target interface for given <paramref name="interfaceToProxy"/> interface, implementing given <paramref name="additionalInterfacesToProxy"/> on given <paramref name="targetType"/> and using provided <paramref name="options"/>.
</summary>
<param name="interfaceToProxy">The interface proxy type should implement.</param>
<param name="additionalInterfacesToProxy">The additional interfaces proxy type should implement.</param>
- <param name="targetType">Actual type that the proxy type will encompass.</param>
<param name="options">The options for proxy generation process.</param>
<returns><see cref="T:System.Type"/> of proxy.</returns>
</member>
@@ -1222,6 +1439,11 @@
<param name="options">The options for proxy generation process.</param>
<returns><see cref="T:System.Type"/> of proxy.</returns>
</member>
+ <member name="P:Castle.DynamicProxy.ProxyGenerator.Logger">
+ <summary>
+ Gets or sets the <see cref="T:Castle.Core.Logging.ILogger"/> that this <see cref="T:Castle.DynamicProxy.ProxyGenerator"/> log to.
+ </summary>
+ </member>
<member name="P:Castle.DynamicProxy.ProxyGenerator.ProxyBuilder">
<summary>
Gets the proxy builder instance used to generate proxy types.
View
BIN SharedLibs/Castle.MicroKernel.dll
Binary file not shown.
View
224 SharedLibs/Castle.MicroKernel.xml
@@ -206,11 +206,16 @@
Initializes a new instance of the <see cref="T:Castle.MicroKernel.CreationContext"/> class.
</summary>
</member>
- <member name="M:Castle.MicroKernel.CreationContext.HandlerIsCurrentlyBeingResolved(Castle.MicroKernel.IHandler)">
+ <member name="M:Castle.MicroKernel.CreationContext.IsInResolutionContext(Castle.MicroKernel.IHandler)">
<summary>
- Check if we are now in the middle of resolving this handler,
- and as such, we shouldn't try to resolve that.
+ Method used by handlers to test whether they are being resolved in the context.
</summary>
+ <param name="handler"></param>
+ <returns></returns>
+ <remarks>
+ This method is provided as part of double dispatch mechanism for use by handlers.
+ Outside of handlers, call <see cref="M:Castle.MicroKernel.IHandler.IsBeingResolvedInContext(Castle.MicroKernel.CreationContext)"/> instead.
+ </remarks>
</member>
<member name="P:Castle.MicroKernel.CreationContext.Empty">
<summary>Creates a new, empty <see cref="T:Castle.MicroKernel.CreationContext"/> instance.</summary>
@@ -768,16 +773,61 @@
<param name="model">The model.</param>
<param name="component">The component.</param>
</member>
+ <member name="M:Castle.MicroKernel.Facilities.TypedFactory.ITypedFactoryComponentSelector.SelectComponent(System.Reflection.MethodInfo,System.Type,System.Object[])">
+ <summary>
+ Selects one or both of component name and type, for given method
+ called on given typed factory type.
+ When component should be requested by type only,
+ componentName should be null.
+ When component should be requested by name only,
+ componentType should be null.
+
+ </summary>
+ <param name="method"></param>
+ <param name="type"></param>
+ <param name="arguments"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Castle.MicroKernel.Facilities.TypedFactory.ITypedFactoryMethod.Invoke(Castle.Core.Interceptor.IInvocation)">
+ <summary>
+ Performs actual invocation of typed factory method.
+ </summary>
+ <param name="invocation"></param>
+ </member>
<member name="T:Castle.Facilities.TypedFactory.FactoryInterceptor">
<summary>
Summary description for FactoryInterceptor.
</summary>
</member>
+ <member name="T:Castle.MicroKernel.Facilities.TypedFactory.Release">
+ <summary>
+ Releases components passed as arguments from the container.
+ </summary>
+ </member>
+ <member name="T:Castle.MicroKernel.Facilities.TypedFactory.Resolve">
+ <summary>
+ resolves componet selected by given <see cref="T:Castle.MicroKernel.Facilities.TypedFactory.ITypedFactoryComponentSelector"/> from the container
+ </summary>
+ </member>
<member name="T:Castle.Facilities.TypedFactory.TypedFactoryFacility">
<summary>
Summary description for TypedFactoryFacility.
</summary>
</member>
+ <member name="M:Castle.Facilities.TypedFactory.TypedFactoryRegistrationExtensions.AsFactory``1(Castle.MicroKernel.Registration.ComponentRegistration{``0})">
+ <summary>
+ Marks the component as typed factory.
+ </summary>
+ <typeparam name="S"></typeparam>
+ <param name="registration"></param>
+ <returns></returns>
+ <remarks>
+ Only interfaces are legal to use as typed factories. Methods with out parameters are not allowed.
+ When registering component as typed factory no implementation should be provided (in case there is any it will be ignored).
+ Typed factories rely on <see cref="T:Castle.Core.Interceptor.IInterceptorSelector"/> set internally, so users should not set interceptor selectors explicitly;
+ otherwise the factory will not function correctly.
+ </remarks>
+ </member>
<member name="T:Castle.MicroKernel.Handlers.AbstractHandler">
<summary>
Implements the basis of <see cref="T:Castle.MicroKernel.IHandler"/>
@@ -811,6 +861,7 @@
Implementors should dispose the component instance
</summary>
<param name="instance"></param>
+ <returns>true if destroyed.</returns>
</member>
<member name="M:Castle.MicroKernel.IHandler.AddCustomDependencyValue(System.String,System.Object)">
<summary>
@@ -837,6 +888,11 @@
<param name="key"></param>
<returns></returns>
</member>
+ <member name="M:Castle.MicroKernel.IHandler.IsBeingResolvedInContext(Castle.MicroKernel.CreationContext)">
+ <summary>
+ Tests whether the handler is already being resolved in given context.
+ </summary>
+ </member>
<member name="P:Castle.MicroKernel.IHandler.CurrentState">
<summary>
Gets the state of the handler
@@ -911,19 +967,36 @@
</member>
<member name="M:Castle.MicroKernel.Handlers.AbstractHandler.Resolve(Castle.MicroKernel.CreationContext)">
<summary>
+ Returns an instance of the component this handler
+ is responsible for
+ </summary>
+ <param name="context"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Castle.MicroKernel.Handlers.AbstractHandler.ResolveCore(Castle.MicroKernel.CreationContext,System.Boolean)">
+ <summary>
Should be implemented by derived classes:
returns an instance of the component this handler
is responsible for
</summary>
<param name="context"></param>
+ <param name="track"></param>
<returns></returns>
</member>
<member name="M:Castle.MicroKernel.Handlers.AbstractHandler.Release(System.Object)">
<summary>
+ disposes the component instance (or recycle it).
+ </summary>
+ <param name="instance"></param>
+ <returns></returns>
+ </member>
+ <member name="M:Castle.MicroKernel.Handlers.AbstractHandler.ReleaseCore(System.Object)">
+ <summary>
Should be implemented by derived classes:
disposes the component instance (or recycle it)
</summary>
<param name="instance"></param>
+ <returns>true if destroyed.</returns>
</member>
<member name="M:Castle.MicroKernel.Handlers.AbstractHandler.AddCustomDependencyValue(System.String,System.Object)">
<summary>
@@ -984,7 +1057,7 @@
</remarks>
<param name="dependency"></param>
</member>
- <member name="M:Castle.MicroKernel.Handlers.AbstractHandler.DependencySatisfied(Castle.MicroKernel.IHandler,System.Boolean@)">
+ <member name="M:Castle.MicroKernel.Handlers.AbstractHandler.DependencySatisfied(System.Boolean@)">
<summary>
Invoked by the kernel
when one of registered dependencies were satisfied by
@@ -993,7 +1066,6 @@
<remarks>
Handler for the event <see cref="E:Castle.MicroKernel.IKernelEvents.HandlerRegistered"/>
</remarks>
- <param name="handler"></param>
<param name="stateChanged"></param>
</member>
<member name="M:Castle.MicroKernel.Handlers.AbstractHandler.OnAddedAsChildKernel(System.Object,System.EventArgs)">
@@ -1072,19 +1144,21 @@
</summary>
<param name="model"></param>
</member>
- <member name="M:Castle.MicroKernel.Handlers.DefaultHandler.Resolve(Castle.MicroKernel.CreationContext)">
+ <member name="M:Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(Castle.MicroKernel.CreationContext,System.Boolean)">
<summary>
Returns an instance of the component this handler
is responsible for
</summary>
<param name="context"></param>
+ <param name="track"></param>
<returns></returns>
</member>
- <member name="M:Castle.MicroKernel.Handlers.DefaultHandler.Release(System.Object)">
+ <member name="M:Castle.MicroKernel.Handlers.DefaultHandler.ReleaseCore(System.Object)">
<summary>
disposes the component instance (or recycle it)
</summary>
<param name="instance"></param>
+ <returns>true if destroyed</returns>
</member>
<member name="T:Castle.MicroKernel.Handlers.DefaultHandlerFactory">
<summary>
@@ -1243,6 +1317,16 @@
</summary>
</member>
+ <member name="T:Castle.MicroKernel.Lifestyle.PerThreadThreadStaticLifestyleManager">
+ <summary>
+ per thread LifestyleManager implementation compatibile with Silverlight.
+ </summary>
+ </member>
+ <member name="M:Castle.MicroKernel.Lifestyle.PerThreadThreadStaticLifestyleManager.Dispose">
+ <summary>
+
+ </summary>
+ </member>
<member name="T:Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleManager">
<summary>
Implements a Lifestyle Manager for Web Apps that
@@ -1290,7 +1374,7 @@
component configuration and verifies it implements the <see cref="T:Castle.MicroKernel.IComponentActivator"/>
interface.
</summary>
- <exception cref="T:System.Configuration.ConfigurationException">
+ <exception cref="T:System.Exception">
If the type does not implement the proper interface
</exception>
<param name="model"></param>
@@ -1332,7 +1416,7 @@
Reads the proxy behavior associated with the
component configuration/type and applies it to the model.
</summary>
- <exception cref="T:System.Configuration.ConfigurationException">
+ <exception cref="T:System.Exception">
If the conversion fails
</exception>
<param name="kernel"></param>
@@ -1388,11 +1472,6 @@
magic numbers and hardcode names.
</summary>
</member>
- <member name="T:Castle.MicroKernel.ModelBuilder.Inspectors.GenericInspector">
- <summary>
-
- </summary>
- </member>
<member name="T:Castle.MicroKernel.ModelBuilder.Inspectors.InterceptorInspector">
<summary>
Inspect the component for <c>InterceptorAttribute</c> and
@@ -1732,6 +1811,11 @@
Gets or sets the proxy hook.
</summary>
</member>
+ <member name="P:Castle.MicroKernel.Proxy.ProxyOptions.Selector">
+ <summary>
+ Gets or sets the interceptor selector.
+ </summary>
+ </member>
<member name="P:Castle.MicroKernel.Proxy.ProxyOptions.OmitTarget">
<summary>
Determines if the proxied component uses a target.
@@ -2569,6 +2653,38 @@
<param name="interceptors">The interceptors.</param>
<returns></returns>
</member>
+ <member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.Interceptors(System.Type[])">
+ <summary>
+ Set the interceptors for this component.
+ </summary>
+ <param name="interceptors">The interceptors.</param>
+ <returns></returns>
+ </member>
+ <member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.Interceptors``1">
+ <summary>
+ Set the interceptor for this component.
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.Interceptors``2">
+ <summary>
+ Set the interceptor for this component.
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.Interceptors(System.String[])">
+ <summary>
+ Set the interceptor for this component.
+ </summary>
+ <returns></returns>
+ </member>
+ <member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.SelectInterceptorsWith(Castle.Core.Interceptor.IInterceptorSelector)">
+ <summary>
+ Sets the interceptor selector for this component.
+ </summary>
+ <param name="selector"></param>
+ <returns></returns>
+ </member>
<member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.Startable">
<summary>
Marks the component as startable.
@@ -2595,6 +2711,27 @@
<remarks>Be sure that you first added the <see cref="T:Castle.Facilities.Startable.StartableFacility"/>
to the kernel, before registering this component.</remarks>
</member>
+ <member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.OnCreate(Castle.MicroKernel.LifecycleConcerns.OnCreateActionDelegate{`0}[])">
+ <summary>
+ Stores a set of <see cref="T:Castle.MicroKernel.LifecycleConcerns.OnCreateActionDelegate`1"/> which will be invoked when the component
+ is created and before it's returned from the container.
+ </summary>
+ <param name="actions">A set of actions to be executed right after the component is created and before it's returned from the container.</param>
+ </member>
+ <member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.DynamicParameters(Castle.MicroKernel.Registration.DynamicParametersDelegate)">
+ <summary>
+ Allows custom dependencies to by defined dyncamically.
+ </summary>
+ <param name="resolve">The delegate used for providing dynamic parameters.</param>
+ <returns></returns>
+ </member>
+ <member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.DynamicParameters(Castle.MicroKernel.Registration.DynamicParametersResolveDelegate)">
+ <summary>
+ Allows custom dependencies to by defined dyncamically with releasing capability.
+ </summary>
+ <param name="resolve">The delegate used for providing dynamic parameters.</param>
+ <returns></returns>
+ </member>
<member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.ActAs(System.Object[])">
<summary>
Marks the components with one or more actors.
@@ -2661,6 +2798,15 @@
<param name="factoryMethod">Factory method</param>
<returns></returns>
</member>
+ <member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.UsingFactoryMethod``1(System.Func{Castle.MicroKernel.IKernel,Castle.MicroKernel.CreationContext,``0})">
+ <summary>
+ Uses a factory method to instantiate the component.
+ Requires the <see cref="T:Castle.Facilities.FactorySupport.FactorySupportFacility"/> to be installed.
+ </summary>
+ <typeparam name="T">Implementation type</typeparam>
+ <param name="factoryMethod">Factory method</param>
+ <returns></returns>
+ </member>
<member name="M:Castle.MicroKernel.Registration.ComponentRegistration`1.UsingFactory``2(System.Converter{``0,``1})">
<summary>
Uses a factory to instantiate the component
@@ -2724,13 +2870,19 @@
</summary>
<typeparam name="T"></typeparam>
</member>
- <member name="T:Castle.MicroKernel.Registration.GenericFactoryWithKernel`1">
+ <member name="T:Castle.MicroKernel.Registration.GenericFactory`1">
<summary>
Helper factory class
</summary>
<typeparam name="T"></typeparam>
</member>
- <member name="T:Castle.MicroKernel.Registration.GenericFactory`1">
+ <member name="T:Castle.MicroKernel.Registration.GenericFactoryWithContext`1">
+ <summary>
+ Helper factory class
+ </summary>
+ <typeparam name="T"></typeparam>
+ </member>
+ <member name="T:Castle.MicroKernel.Registration.GenericFactoryWithKernel`1">
<summary>
Helper factory class
</summary>
@@ -2875,6 +3027,12 @@
</summary>
<param name="configuration">The configuration.</param>
</member>
+ <member name="T:Castle.MicroKernel.Registration.OnCreateComponentDescriptor`1">
+ <summary>
+ Adds the actions to ExtendedProperties.
+ </summary>
+ <typeparam name="S"></typeparam>
+ </member>
<member name="T:Castle.MicroKernel.Registration.Parameter">
<summary>
Represents a configuration parameter.
@@ -3246,6 +3404,30 @@
<param name="info">The object that holds the serialized object data.</param>
<param name="context">The contextual information about the source or destination.</param>
</member>
+ <member name="T:Castle.MicroKernel.Resolvers.ILazyComponentLoader">
+ <summary>
+ Provides lazy registration capabilities to the container.
+ </summary>
+ <remarks>
+ When a component is requested from a container and it was not registered,
+ container loads up all registered implementers of this interface and asks
+ them in turn whethere they can provide that component, until it finds one that will.
+ </remarks>
+ </member>
+ <member name="M:Castle.MicroKernel.Resolvers.ILazyComponentLoader.Load(System.String,System.Type)">
+ <summary>
+ Used by container to allow the loader gister component for given <paramref name="key"/> and <paramref name="service"/> to the container at the time when it is requested
+ </summary>
+ <param name="key">Key of the requested component or null</param>
+ <param name="service">Type of requested service or null</param>
+ <returns>Registration that registers component for given key and/or service or null.</returns>
+ <remarks>
+ While either key or service can be null reference it is guaranteed that at least one of them will not be null.
+ When implementer opts in to provide the requested component (by returning not-null registration) it is required
+ to register component for requested key/service combination (when one of the elements is null, it should be ignored as well).
+ When implementer does not want to register the requested component it nust return null.
+ </remarks>
+ </member>
<member name="T:Castle.MicroKernel.SubSystems.Configuration.DefaultConfigurationStore">
<summary>
This implementation of <see cref="T:Castle.MicroKernel.IConfigurationStore"/>
@@ -3743,9 +3925,9 @@
</summary>
<param name="properties">Property list.</param>
</member>
- <member name="M:Castle.MicroKernel.SubSystems.Naming.ComponentName.SetupProperties(System.Collections.IDictionary)">
+ <member name="M:Castle.MicroKernel.SubSystems.Naming.ComponentName.SetupProperties(System.Collections.Generic.IDictionary{System.String,System.String})">
<summary>
- Validates a properties Hashtable.
+ Validates a properties IDictionary.
</summary>
<param name="properties">Property list.</param>
</member>
@@ -4136,6 +4318,12 @@
(it might be in a valid or waiting dependency state)
</summary>
</member>
+ <member name="E:Castle.MicroKernel.IKernelEvents.HandlersChanged">
+ <summary>
+ Event fired when a new handler is registered
+ (it might be in a valid or waiting dependency state)
+ </summary>
+ </member>
<member name="E:Castle.MicroKernel.IKernelEvents.DependencyResolving">
<summary>
Event fired when a dependency is being resolved,
View
BIN SharedLibs/Castle.Windsor.dll
Binary file not shown.

0 comments on commit 9a0839c

Please sign in to comment.