public ProxyGenerator(IScalarSerializers scalarSerializers, bool allowSave = false) { myScalarSerializers = scalarSerializers; myAllowSave = allowSave; #if NETSTANDARD myModuleBuilder = new Lazy <ModuleBuilder>(() => myAssemblyBuilder.Value.DefineDynamicModule("ProxyGenerator")); myAssemblyBuilder = new Lazy <AssemblyBuilder>(() => AssemblyBuilder.DefineDynamicAssembly(new AssemblyName("ProxyGenerator"), AssemblyBuilderAccess.Run)); #else myAssemblyBuilder = new Lazy <AssemblyBuilder>(() => AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("ProxyGenerator"), allowSave ? AssemblyBuilderAccess.RunAndSave : AssemblyBuilderAccess.Run)); if (allowSave) { myModuleBuilder = new Lazy <ModuleBuilder>(() => myAssemblyBuilder.Value.DefineDynamicModule("ProxyGenerator", "RdProxy.dll")); } else { myModuleBuilder = new Lazy <ModuleBuilder>(() => myAssemblyBuilder.Value.DefineDynamicModule("ProxyGenerator")); } #endif }
public ReflectionSerializersFacade([CanBeNull] ITypesCatalog typesCatalog = null, [CanBeNull] IScalarSerializers scalarSerializers = null, [CanBeNull] ReflectionSerializersFactory reflectionSerializers = null, [CanBeNull] IProxyGenerator proxyGenerator = null, [CanBeNull] ReflectionRdActivator activator = null, [CanBeNull] TypesRegistrar registrar = null, bool allowSave = false) { TypesCatalog = typesCatalog ?? new SimpleTypesCatalog(); ScalarSerializers = scalarSerializers ?? new ScalarSerializer(TypesCatalog); SerializersFactory = reflectionSerializers ?? new ReflectionSerializersFactory(TypesCatalog, ScalarSerializers); ProxyGenerator = proxyGenerator ?? new ProxyGeneratorCache(new ProxyGenerator(ScalarSerializers, allowSave)); Activator = activator ?? new ReflectionRdActivator(SerializersFactory, ProxyGenerator, TypesCatalog); Registrar = registrar ?? new TypesRegistrar(TypesCatalog, SerializersFactory); }
public ReflectionSerializersFactory([NotNull] ITypesCatalog typeCatalog, IScalarSerializers scalars = null, Predicate <Type> blackListChecker = null) { myScalars = scalars ?? new ScalarSerializer(typeCatalog, blackListChecker); Cache = new SerializersContainer(mySerializers); Serializers.RegisterFrameworkMarshallers(Cache); }