isn't it self documenting enough?
it's an *open* project, *you *can improve the documentation.

On 10/08/2010 9:12 PM, omer katz wrote:
Is it invocation.Proxy?
It's pretty annoying that the API is not documented.

2010/8/10 Ken Egozi <[email protected] <mailto:[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/


    On Tue, Aug 10, 2010 at 12:20 PM, omer katz <[email protected]
    <mailto:[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] <mailto:[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] <mailto:[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]
                <mailto:[email protected]>.
                To unsubscribe from this group, send email to
                [email protected]
                <mailto: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.delver.com/>
            http://www.musicglue.com <http://www.musicglue.com/>
            http://www.castleproject.org <http://www.castleproject.org/>
            http://www.idcc.co.il <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]
            <mailto:[email protected]>.
            To unsubscribe from this group, send email to
            [email protected]
            <mailto: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]
        <mailto:[email protected]>.
        To unsubscribe from this group, send email to
        [email protected]
        <mailto: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.delver.com/>
    http://www.musicglue.com <http://www.musicglue.com/>
    http://www.castleproject.org <http://www.castleproject.org/>
    http://www.idcc.co.il <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] <mailto:[email protected]>. To unsubscribe from this group, send email to [email protected] <mailto: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.

--
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