public SerializableResolver(Serializator serializator, Type resolveType) : base(resolveType) { if (serializator == null) { throw new ArgumentNullException($"{nameof(SerializableResolver)}. Initializing was failed: serializator cant be null"); } if (resolveType == null) { throw new ArgumentNullException($"{nameof(SerializableResolver)}. Initializing was failed: resolveType cant be null"); } Serializator = serializator; InstanceFactory = new UninitializedInstanceFactory(resolveType); Constructor = resolveType.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, ConstructorSignature, null); if (Constructor == null) { throw new NotImplementedException($"{nameof(SerializableResolver)}. Initializing was failed: resolveType not implemented constructor with <SerializationInfo>, <StreamingContext> parameters"); } var resolverStorage = Serializator.GetResolverManager().Storage; var serializationInfoConvention = Serializator.GetTypeManager().ConventionOf(typeof(SerializationInfo)); resolverStorage.SetResolver(new SerializationInfoResolver(serializator), serializationInfoConvention); }
public DefaultTemplateFactory(Type templateType) { if (templateType.IsValueType) { Factory = new ActivatorInstanceFactory(templateType); } else { Factory = new NullTemplateFactory(); } }
private RuntimeResolver(Type resolveType, Serializator serializator, ITemplateInstanceFactory factory) : base(factory, resolveType, serializator) { if (resolveType != null) { Fields = SerializationUtility.Targeting.GetSerializableFieldsInternal(resolveType); } else { Fields = new FieldInfo[0]; } }
public Resolver(Type resolveType, bool useConstructor, Serializator serializator) : base(resolveType) { this.Serializator = serializator; if (useConstructor) { TemplateInstanceFactory = new ConstructorInstanceFactory(resolveType); } else { TemplateInstanceFactory = new UninitializedInstanceFactory(resolveType); } }
public Resolver(Type resolveType, Func <XElement, object> customFactory, Serializator serializator) : base(resolveType) { this.Serializator = serializator; TemplateInstanceFactory = new FuncInstanceFactory(customFactory); }
public Resolver(ITemplateInstanceFactory instanceFactory, Type resolveType, Serializator serializator) : base(resolveType) { this.Serializator = serializator; this.TemplateInstanceFactory = instanceFactory; }