| 123456789101112131415161718192021222324252627282930313233343536 |
- using System;
- using log4net;
- using NHibernate.Engine;
- using NHibernate.Proxy;
- namespace NHibernate.ByteCode.LinFu
- {
- public class ProxyFactory : AbstractProxyFactory
- {
- private static readonly global::LinFu.DynamicProxy.ProxyFactory factory = new global::LinFu.DynamicProxy.ProxyFactory();
- protected static readonly ILog log = LogManager.GetLogger(typeof (ProxyFactory));
- #region IProxyFactory Members
- public override INHibernateProxy GetProxy(object id, ISessionImplementor session)
- {
- try
- {
- var initializer = new LazyInitializer(EntityName, PersistentClass, id, GetIdentifierMethod, SetIdentifierMethod,
- ComponentIdType, session);
- object proxyInstance = IsClassProxy ? factory.CreateProxy(PersistentClass, initializer, Interfaces)
- : factory.CreateProxy(Interfaces[0], initializer, Interfaces);
- return (INHibernateProxy) proxyInstance;
- }
- catch (Exception ex)
- {
- log.Error("Creating a proxy instance failed", ex);
- throw new HibernateException("Creating a proxy instance failed", ex);
- }
- }
- #endregion
- }
- }
|