Thx will do that...

JIRA still down??

On Jul 10, 2:10 pm, Fabio Maulo <[email protected]> wrote:
> Very interesting.
> Change the conf of NHibernate Tests project and run all tests with your
> UnityBytecode and you will see the result.
> btw, please check our JIRA about this issue and then add a zip with all
> files needed (in this case could be better than a patch file).
>
>
>
> On Fri, Jul 9, 2010 at 5:11 PM, Dawid <[email protected]> wrote:
> > Hi,
>
> > Without understanding most of the inner technical details of
> > nHibernate, it would seem as if I've gotten Unity Interception to work
> > as the LazyInitializer.
>
> > Code for the LazyInitializer:
> >  class LazyInitializer:  BasicLazyInitializer, IInterceptionBehavior
> >  {
> >    public bool _constructed;
>
> >    public LazyInitializer(string entityName, Type persistentClass,
> > object id, MethodInfo getIdentifierMethod, MethodInfo
> > setIdentifierMethod, IAbstractComponentType componentIdType,
> > ISessionImplementor session)
> >      : base(entityName, persistentClass, id, getIdentifierMethod,
> > setIdentifierMethod, componentIdType, session)
> >    {
> >    }
>
> >    public IMethodReturn Invoke(IMethodInvocation input,
> > GetNextInterceptionBehaviorDelegate getNext)
> >    {
> >      var result = input.CreateMethodReturn(null);
> >      if (_constructed)
> >      {
>
> >        var args = new object[input.Arguments.Count];
> >        input.Arguments.CopyTo(args, 0);
> >        result.ReturnValue = base.Invoke((MethodInfo)input.MethodBase,
> > args, input.Target);
> >        if (result.ReturnValue == InvokeImplementation)
> >        {
> >          //var input2 = new
> > VirtualMethodInvocation(GetImplementation(), input.MethodBase,
> > input.Arguments);
> >          result =
> > input.CreateMethodReturn(input.MethodBase.Invoke(GetImplementation(),
> > args));
> >        }
> >      }
> >      return result;
> >    }
>
> >    public IEnumerable<Type> GetRequiredInterfaces()
> >    {
> >      return new[] {typeof (INHibernateProxy)};
> >    }
>
> >    public bool WillExecute
> >    {
> >      get { return true; }
> >    }
>
> > Code for the Proxy Factory:
> >  class UnityProxyFactory: AbstractProxyFactory
> >  {
> >    public override INHibernateProxy GetProxy(object id,
> > ISessionImplementor session)
> >    {
> >      INHibernateProxy proxy;
> >      try
> >      {
> >        LazyInitializer initializer = new LazyInitializer(EntityName,
> > PersistentClass, id, GetIdentifierMethod, SetIdentifierMethod,
> > ComponentIdType, session);
> >        object obj2 = IsClassProxy
> >                        ?
> > Intercept.NewInstanceWithAdditionalInterfaces(PersistentClass, new
> > VirtualMethodInterceptor(),
>
> > new[] {initializer}, Interfaces)
> >                        :
> > Intercept.NewInstanceWithAdditionalInterfaces(Interfaces[0], new
> > VirtualMethodInterceptor(),
>
> > new[] {initializer}, Interfaces);
> >        initializer._constructed = true;
> >        proxy = (INHibernateProxy)obj2;
> >      }
> >      catch (Exception exception)
> >      {
> >        //log.Error("Creating a proxy instance failed", exception);
> >        throw new HibernateException("Creating a proxy instance
> > failed", exception);
> >      }
> >      return proxy;
>
> >    }
> >  }
>
> > Any comments / ideas? What sort of unit tests is required to make sure
> > that Unity Interception is actually working correctly?
>
> > Regards,
> > Dawid Mostert
>
> --
> Fabio Maulo

Reply via email to