コード例 #1
0
 public object Instantiate()
 {
     if (ReflectHelper.IsAbstractClass(mappedClass))
     {
         throw new InstantiationException("Cannot instantiate abstract class or interface: ", mappedClass);
     }
     if (generateFieldInterceptionProxy)
     {
         return(proxyFactory.GetFieldInterceptionProxy());
     }
     if (optimizer != null)
     {
         return(optimizer.CreateInstance());
     }
     if (mappedClass.IsValueType)
     {
         return(Cfg.Environment.BytecodeProvider.ObjectsFactory.CreateInstance(mappedClass, true));
     }
     if (constructor == null)
     {
         throw new InstantiationException("No default constructor for entity: ", mappedClass);
     }
     try
     {
         return(constructor.Invoke(null));
     }
     catch (Exception e)
     {
         throw new InstantiationException("Could not instantiate entity: ", e, mappedClass);
     }
 }
コード例 #2
0
        protected override object CreateInstance()
        {
            if (!_enhancedForLazyLoading)
            {
                return(base.CreateInstance());
            }

            var entity = _proxyFactory.GetFieldInterceptionProxy(base.CreateInstance);

            _entityMetamodel.BytecodeEnhancementMetadata.InjectInterceptor(entity, null);
            return(entity);
        }
コード例 #3
0
 public object Instantiate()
 {
     if (ReflectHelper.IsAbstractClass(mappedClass))
     {
         throw new InstantiationException("Cannot instantiate abstract class or interface: ", mappedClass);
     }
     if (generateFieldInterceptionProxy)
     {
         return(proxyFactory.GetFieldInterceptionProxy(GetInstance()));
     }
     return(GetInstance());
 }
コード例 #4
0
        // 6.0 TODO: Move to IProxyFactory
        public static object GetFieldInterceptionProxy(this IProxyFactory proxyFactory)
        {
            if (proxyFactory is StaticProxyFactory staticProxyFactory)
            {
                return(staticProxyFactory.GetFieldInterceptionProxy());
            }

#pragma warning disable 618
            return(proxyFactory.GetFieldInterceptionProxy(null));

#pragma warning restore 618
        }
コード例 #5
0
        // 6.0 TODO: Remove
        internal static object GetFieldInterceptionProxy(this IProxyFactory proxyFactory, Func <object> instantiateFunc)
        {
            if (proxyFactory is StaticProxyFactory staticProxyFactory)
            {
                return(staticProxyFactory.GetFieldInterceptionProxy());
            }

#pragma warning disable 618
            return(proxyFactory.GetFieldInterceptionProxy(instantiateFunc?.Invoke()));

#pragma warning restore 618
        }
コード例 #6
0
		public object Instantiate()
		{
			if (_isAbstract)
			{
				throw new InstantiationException("Cannot instantiate abstract class or interface: ", mappedClass);
			}
			// 6.0 TODO: Remove if statement
			if (generateFieldInterceptionProxy)
			{
				return proxyFactory.GetFieldInterceptionProxy(CreateInstance);
			}
			return CreateInstance();
		}