コード例 #1
0
        public static DeserializerFactory CreateDefault(params DeserializationRule[] additionalRules)
        {
            var ans = new DeserializerFactory();

            foreach (var serializationRule in additionalRules)
            {
                ans.AddRule(serializationRule);
            }
            ans.AddRule(DeserializationRule.Create(new ByteArrayDeserializer()));
            ans.AddRule(DeserializationRule.Create(new ByteEnumerableDeserializer()));
            ans.AddRule(DeserializationRule.Create(new UnicodeDeserializer()));
            ans.AddRule(DeserializationRule.Create(new UTCFileTimeDeserializer()));
            ans.AddRule(DeserializationRule.Create(new UTCFileTimeAndOffsetDeserializer()));
            ans.AddRule(new DeserializationRule(t => t.GetTypeInfo().IsDefined(typeof(ProtoBuf.ProtoContractAttribute)), CreateProtoDeserializer));
            ans.AddRule(new DeserializationRule(t => t.IsArray, CreateArrayDeserializer));
            ans.AddRule(new DeserializationRule(t => t.GetTypeInfo().IsEnum, CreateEnumDeserializer));
            ans.AddRule(new DeserializationRule(PresentationHelper.IsNulable, CreateDotNetNullableSerializer));
            ans.AddRule(new DeserializationRule(t => t.GetTypeInfo().IsValueType, CreateDotNetValueTypeSerializer));
            return(ans);
        }
コード例 #2
0
 public void AddRule(DeserializationRule rule)
 {
     _rules.Add(rule);
 }