public TPolicyInterface GetPolicy <TPolicyInterface>() { return((TPolicyInterface)(Get(typeof(TPolicyInterface)) ?? ( #if NETCOREAPP1_0 || NETSTANDARD1_0 RegistrationType.GetTypeInfo().IsGenericType #else RegistrationType.IsGenericType #endif ? Get(RegistrationType.GetGenericTypeDefinition(), Name, typeof(TPolicyInterface)) ?? ((UnityContainer)Container).Defaults.Get(typeof(TPolicyInterface)) : ((UnityContainer)Container).Defaults.Get(typeof(TPolicyInterface))))); }
public ResolveDelegateFactory GetFactory() { // From registration ResolveDelegateFactory policy = Registration.Get <ResolveDelegateFactory>(); if (null != policy) { return(policy); } if (Registration is ExplicitRegistration registration) { #if NETCOREAPP1_0 || NETSTANDARD1_0 if (Type?.GetTypeInfo().IsGenericType ?? false) #else if (Type?.IsGenericType ?? false) #endif { return(((UnityContainer)Container).GetFactoryPolicy(Type.GetGenericTypeDefinition(), Name) ?? ((UnityContainer)Container).Defaults.ResolveDelegateFactory); } else if (RegistrationType.IsArray) { return(ArrayResolver.Factory); } } else { #if NETCOREAPP1_0 || NETSTANDARD1_0 if (RegistrationType.GetTypeInfo().IsGenericType) #else if (RegistrationType.IsGenericType) #endif { return(((UnityContainer)Container).GetFactoryPolicy(RegistrationType.GetGenericTypeDefinition(), Name) ?? ((UnityContainer)Container).Defaults.ResolveDelegateFactory); } else if (RegistrationType.IsArray) { return(ArrayResolver.Factory); } } return(((UnityContainer)Container).GetFactoryPolicy(Type) ?? ((UnityContainer)Container).Defaults.ResolveDelegateFactory); }