/// <summary>
		/// Build a proxy using the Castle.DynamicProxy library.
		/// </summary>
		/// <param name="id">The value for the Id.</param>
		/// <param name="session">The Session the proxy is in.</param>
		/// <returns>A fully built <c>INHibernateProxy</c>.</returns>
		public INHibernateProxy GetProxy(object id, ISessionImplementor session)
		{
			try
			{
				CastleLazyInitializer initializer = new CastleLazyInitializer(_persistentClass, id,
				                                                              _getIdentifierMethod, _setIdentifierMethod, session);

				object generatedProxy = null;

				if (IsClassProxy)
				{
					generatedProxy = _proxyGenerator.CreateClassProxy(_persistentClass, _interfaces, initializer, false);
				}
				else
				{
					generatedProxy = _proxyGenerator.CreateProxy(_interfaces, initializer, new object());
				}

				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);
			}
		}
Beispiel #2
0
        /// <summary>
        /// Build a proxy using the Castle.DynamicProxy library.
        /// </summary>
        /// <param name="id">The value for the Id.</param>
        /// <param name="session">The Session the proxy is in.</param>
        /// <returns>A fully built <c>INHibernateProxy</c>.</returns>
        public INHibernateProxy GetProxy(object id, ISessionImplementor session)
        {
            try
            {
                CastleLazyInitializer initializer = new CastleLazyInitializer(_persistentClass, id,
                                                                              _getIdentifierMethod, _setIdentifierMethod, session);

                object generatedProxy = null;

                if (IsClassProxy)
                {
                    generatedProxy = _proxyGenerator.CreateClassProxy(_persistentClass, _interfaces, initializer, false);
                }
                else
                {
                    generatedProxy = _proxyGenerator.CreateProxy(_interfaces, initializer, new object());
                }

                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);
            }
        }