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];
     }
 }
Example #4
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);
     }
 }
Example #5
0
 public Resolver(Type resolveType, Func <XElement, object> customFactory, Serializator serializator)
     : base(resolveType)
 {
     this.Serializator       = serializator;
     TemplateInstanceFactory = new FuncInstanceFactory(customFactory);
 }
Example #6
0
 public Resolver(ITemplateInstanceFactory instanceFactory, Type resolveType, Serializator serializator)
     : base(resolveType)
 {
     this.Serializator            = serializator;
     this.TemplateInstanceFactory = instanceFactory;
 }