Наследование: NHibernate.Proxy.LazyInitializer
        public override INHibernateProxy GetProxy(object id, ISessionImplementor session)
        {
            try
            {
                LazyInitializer initializer = new DataBindingInterceptor(EntityName, PersistentClass, id, GetIdentifierMethod,
                                                                         SetIdentifierMethod, ComponentIdType, session);

                object generatedProxy;

                var list = new ArrayList(Interfaces);
                list.Add(typeof(INotifyPropertyChanged));
                var interfaces = (System.Type[])list.ToArray(typeof(System.Type));
                if (IsClassProxy)
                {
                    generatedProxy = DefaultProxyGenerator.CreateClassProxy(PersistentClass, interfaces, ProxyGenerationOptions.Default,
                                                                            initializer);
                }
                else
                {
                    generatedProxy = DefaultProxyGenerator.CreateInterfaceProxyWithoutTarget(interfaces[0], interfaces, initializer);
                }

                initializer._constructed = true;
                return((INHibernateProxy)generatedProxy);
            }
            catch (Exception e)
            {
                log.Error("Creating a proxy instance failed", e);
                throw new HibernateException("Creating a proxy instance failed", e);
            }
        }
		public override INHibernateProxy GetProxy(object id, ISessionImplementor session)
		{
			try
			{
				LazyInitializer initializer = new DataBindingInterceptor(EntityName, PersistentClass, id, GetIdentifierMethod,
				                                                         SetIdentifierMethod, ComponentIdType, session);

				object generatedProxy;

				var list = new ArrayList(Interfaces);
				list.Add(typeof (INotifyPropertyChanged));
				var interfaces = (System.Type[]) list.ToArray(typeof (System.Type));
				if (IsClassProxy)
				{
					generatedProxy = DefaultProxyGenerator.CreateClassProxy(PersistentClass, interfaces, ProxyGenerationOptions.Default,
					                                                        initializer);
				}
				else
				{
					generatedProxy = DefaultProxyGenerator.CreateInterfaceProxyWithoutTarget(interfaces[0], interfaces, initializer);
				}

				initializer._constructed = true;
				return (INHibernateProxy) generatedProxy;
			}
			catch (Exception e)
			{
				log.Error("Creating a proxy instance failed", e);
				throw new HibernateException("Creating a proxy instance failed", e);
			}
		}