You are supposed to handle mixin interfaces differently

On Fri, Jun 26, 2009 at 12:59 AM, Belvasis <[email protected]>wrote:

> So, finally i created some tests.  With the *shouldfind_method* test i'm
> not sure if it is a bug or not.
> The problem here is that the proxy has two methods with the same name and
> signature. This is logic since
> in the tested case one interface is given twice to the ProxyGenerator. I'm
> just wondering why this doesn't result
> in an exception. With the real case the problem is, it is not startable
> with NUnit, Gallio etc. They both crashed.
> Hope you can find something...
>
>
> 2009/6/25 Belvasis <[email protected]>
>
> Yes i'll do it later this evening, i'm on travel right now
>>
>> Regards
>>
>> Am 25.06.2009 um 16:45 schrieb Ayende Rahien <[email protected]>:
>>
>> That most definitely should not.Can you create a test case?
>>
>> On Thu, Jun 25, 2009 at 5:41 PM, Belvasis < <http://belvasis.de>
>> belvasis.de@ <http://googlemail.com>googlemail.com> wrote:
>>
>>> Now i'm confused ;) Did you think i called the MethodInfo.Invoke from
>>> inside the intercepto? No, no i didn't. That this results in an endless loop
>>> is clear. I did simply:
>>> Obj = CreateInterfacProxyWithTarget
>>> pMethod.Invoke(obj...)
>>>
>>> And Inside the interceptor:
>>>
>>> ...
>>> If( check(...))
>>>   invocation.proceed()
>>>
>>> This leads to a StackOverflow...
>>>
>>> Am 25.06.2009 um 16:09 schrieb Ayende Rahien < <[email protected]>
>>> [email protected]>:
>>>
>>> It _is_, from the OUTSIDE.You are calling this from the intereceptor!
>>>
>>> On Thu, Jun 25, 2009 at 5:03 PM, Belvasis < 
>>> <http://belvasis.de><http://belvasis.de>
>>> belvasis.de@ <http://googlemail.com> <http://googlemail.com>
>>> googlemail.com> wrote:
>>>
>>>> No thats not what i want or need :( I thought it would be completely
>>>> transparent for the user of the object if it i proxied or not. This is true
>>>> if you work with the public signature of the object, but not if you use
>>>> reflection as far as i can see.  I wanted the developer to call something
>>>> like TaskRegistry.invokeTask("taskDef"). In the end this builds a stateless
>>>> Task object. Every method of the Task can be decorated with an
>>>> TaskImplementor("taskDef") Attribute and those methods should be 
>>>> intercepted
>>>> to check availability, permission etc., if the are invoked. So i have to 
>>>> use
>>>> reflection for it. Maybe i have to think about other ways to do this.
>>>>
>>>> Regards
>>>>
>>>>
>>>> Am 25.06.2009 um 10:01 schrieb Ayende Rahien < 
>>>> <[email protected]><[email protected]>
>>>> [email protected]>:
>>>>
>>>> Yes, that is what you want, no?
>>>>
>>>> On Thu, Jun 25, 2009 at 10:50 AM, Belvasis < 
>>>> <http://belvasis.de><http://belvasis.de><http://belvasis.de>
>>>> belvasis.de@ <http://googlemail.com> 
>>>> <http://googlemail.com><http://googlemail.com>
>>>> googlemail.com> wrote:
>>>>
>>>>> But if i invoke the method on the DynProxyGetTarget() - object it
>>>>> bypasses the interceptor, or do Ido something wrong? On the other hand
>>>>> what you say means, you have alwys to know if an object is a proxy or
>>>>> not. Is this wanted?
>>>>>
>>>>> Thanks and regards
>>>>>
>>>>> Am 25.06.2009 um 02:01 schrieb Ayende Rahien < 
>>>>> <[email protected]><[email protected]><[email protected]>
>>>>> [email protected]>:
>>>>>
>>>>> That is the expected behavior.Invoking a method using Invoke will mean
>>>>> that you get back to the interceptor.
>>>>> The workaround you specified is how this should work.
>>>>>
>>>>> On Thu, Jun 25, 2009 at 2:55 AM, Belvasis < 
>>>>> <http://belvasis.de><http://belvasis.de><http://belvasis.de><http://belvasis.de>
>>>>> belvasis.de@ <http://googlemail.com> 
>>>>> <http://googlemail.com><http://googlemail.com><http://googlemail.com>
>>>>> googlemail.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> >
>>>>>>
>>>>>> > Hi,
>>>>>> > I have the following problem:
>>>>>> > I want to invoke a method on a proxy
>>>>>> > using MethodInfo.Invoke(...). The method should be intercepted, if
>>>>>> the
>>>>>> > InterceptorSelector decided to do so.
>>>>>> > The problem is, that the Interceptor.Intercept method is called in
>>>>>> > an endless loop, if invocation.Proceed is called Inside the
>>>>>> > interceptor. Anyone an idea why this happend? If i invoke the
>>>>>> > corresponding MethodInfo of the DynProxyGetTarget() - object, it
>>>>>> > works as expected.
>>>>>> >
>>>>>> > Thanks
>>>>>> > Belvasis
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>
> >
>

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