Is it invocation.Proxy?
It's pretty annoying that the API is not documented.

2010/8/10 Ken Egozi <[email protected]>

> you've got (at least) two options at your disposal:
> a. the invocation object has a reference to the object it was running on (I
> don't remember the name of the reference by heart). you can then grab the
> dictionary from there using reflection
> a'. better yet, have the dictionary be an explicitly implemented interface,
> and get typed access for it in the interceptor, without polluting your
> entity's API
> b. you could also keep the dictionary on the interceptor instance (and make
> sure you have interceptor per entity and not as singleton) which will make
> accessing it a breeze.
> example for something similar can be seen here:
> http://daniel.wertheim.se/2010/02/05/getting-started-with-mongodb-using-json-net-and-castle-dynamic-proxy/
>
> <http://daniel.wertheim.se/2010/02/05/getting-started-with-mongodb-using-json-net-and-castle-dynamic-proxy/>
>
> On Tue, Aug 10, 2010 at 12:20 PM, omer katz <[email protected]> wrote:
>
>>  So I've gotten this far:
>>
>>> internal
>>> class LookupPropertyInterceptor : IInterceptor
>>>
>>> {
>>>
>>>     public void Intercept(IInvocation invocation)
>>>
>>>     {
>>>
>>>         if (invocation.Method.Name.StartsWith("set_", 
>>> StringComparison.OrdinalIgnoreCase)
>>> &&
>>>
>>>         invocation.Method.GetCustomAttributes(
>>> typeof(LookupProperty), true).ToList().Count == 1)
>>>
>>>         {
>>>
>>>            var property = ((LookupProperty)
>>> invocation.Method.GetCustomAttributes(typeof(LookupProperty), true
>>> ).ToList()[0]); // Handle property here
>>>
>>>         }
>>>
>>>         if (invocation.Method.Name.StartsWith("get_", 
>>> StringComparison.OrdinalIgnoreCase)
>>> &&
>>>
>>>         invocation.Method.GetCustomAttributes(
>>>
>>> typeof(LookupProperty), true).ToList().Count == 1)
>>>
>>>         {
>>>
>>>                 var
>>>
>> property = ((LookupProperty) invocation.Method.GetCustomAttributes(typeof
>> (LookupProperty), true).ToList()[0]); // Handle property here
>>
>>         }
>>
>>         invocation.Proceed();
>>
>>     }
>>
>> }
>>
>> Now how do I handle the setting and getting to the dict dictionary from
>> the source object?
>>
>>  2010/8/10 Ken Egozi <[email protected]>
>>
>>> while intercepting you have access to the intercepted MethodInfo.  from
>>> there to the attributes set on that method the road is clear
>>>
>>>   On Tue, Aug 10, 2010 at 11:26 AM, omer katz <[email protected]> wrote:
>>>
>>>>   Hello,
>>>> I am reading Krzysztof Koźmic's tutorial about Dynamic Proxy and I can't
>>>> figure out how to intercept all properties that have some custom attribute.
>>>>
>>>> Example:
>>>>
>>>>>  [
>>>>> Entity("MyEntityName")]
>>>>>
>>>>> public class MyEntity
>>>>>
>>>>> {
>>>>>
>>>>>     private Dictionary<string, object> dict = new Dictionary<string,
>>>>> object>();
>>>>>
>>>>>     [
>>>>> LookupProperty("SomeOtherEntityName")]
>>>>>
>>>>>     public virtual SomeOtherEntity SomeOtherEntity { get; set; }
>>>>>
>>>>> }
>>>>>
>>>>  In the end result I would like SomeOtherEntity to access the dict
>>>> dictionary with "SomeOtherEntityName" as the key.
>>>>
>>>> Is it possible? How can it be done?
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Castle Project Users" group.
>>>> To post to this group, send email to
>>>> [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected]<castle-project-users%[email protected]>
>>>> .
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/castle-project-users?hl=en.
>>>>
>>>
>>>
>>>
>>> --
>>> Ken Egozi.
>>> http://www.kenegozi.com/blog
>>> http://www.delver.com
>>> http://www.musicglue.com
>>> http://www.castleproject.org
>>> http://www.idcc.co.il - הכנס הקהילתי הראשון למפתחי דוטנט - בואו בהמוניכם
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Castle Project Users" group.
>>> To post to this group, send email to
>>> [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected]<castle-project-users%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/castle-project-users?hl=en.
>>>
>>
>>   --
>> You received this message because you are subscribed to the Google Groups
>> "Castle Project Users" group.
>> To post to this group, send email to
>> [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<castle-project-users%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/castle-project-users?hl=en.
>>
>
>
>
> --
> Ken Egozi.
> http://www.kenegozi.com/blog
> http://www.delver.com
> http://www.musicglue.com
> http://www.castleproject.org
> http://www.idcc.co.il - הכנס הקהילתי הראשון למפתחי דוטנט - בואו בהמוניכם
>
  --
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected]<castle-project-users%[email protected]>
.
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to