コード例 #1
0
        /// <summary>
        /// <see cref="JsonSerializer"/> is initialized with the specified converters only adding the default necessary converters if not specified in the list.
        /// </summary>
        /// <param name="converters">List of converters to initialize the JsonSerializer with</param>
        public EntitySerializer(IEnumerable <JsonConverter> converters) : base()
        {
            if (converters == null)
            {
                throw new ArgumentNullException("converters");
            }
            TypeNameHandling = TypeNameHandling.All;
            ContractResolver = new XrmContractResolver();
            foreach (JsonConverter converter in converters)
            {
                Converters.Add(converter);
            }

            if (!converters.Any(x => x.CanConvert(typeof(Guid))))
            {
                Converters.Add(new GuidConverter());
            }
            if (!converters.Any(x => x.CanConvert(typeof(decimal))))
            {
                Converters.Add(new DecimalConverter());
            }
            if (!converters.Any(x => x.CanConvert(typeof(OptionSetValue))))
            {
                Converters.Add(new OptionSetValueConverter());
            }
            if (!converters.Any(x => x.CanConvert(typeof(AttributeCollection))))
            {
                Converters.Add(new AttributeCollectionConverter());
            }
            if (!converters.Any(x => x.CanConvert(typeof(FormattedValueCollection))))
            {
                Converters.Add(new FormattedValueCollectionConverter());
            }
            if (!converters.Any(x => x.CanConvert(typeof(RelatedEntityCollection))))
            {
                Converters.Add(new RelatedEntityCollectionConverter());
            }
#if !XRM_7 && !XRM_6 && !XRM_5
            if (!converters.Any(x => x.CanConvert(typeof(KeyAttributeCollection))))
            {
                Converters.Add(new KeyAttributeCollectionConverter());
            }
#if !XRM_8
            if (!converters.Any(x => x.CanConvert(typeof(OptionSetValueCollection))))
            {
                Converters.Add(new OptionSetValueCollectionConverter());
            }
#endif
#endif
        }
コード例 #2
0
        /// <summary>
        /// <see cref="JsonSerializer"/> is initialized with the necessary converters
        /// </summary>
        public EntitySerializer() : base()
        {
            TypeNameHandling = TypeNameHandling.All;
            ContractResolver = new XrmContractResolver();
            Converters.Add(new GuidConverter());
            Converters.Add(new DecimalConverter());
            Converters.Add(new OptionSetValueConverter());
            Converters.Add(new AttributeCollectionConverter());
            Converters.Add(new FormattedValueCollectionConverter());
            Converters.Add(new RelatedEntityCollectionConverter());
#if !XRM_7 && !XRM_6 && !XRM_5
            Converters.Add(new KeyAttributeCollectionConverter());
#if !XRM_8
            Converters.Add(new OptionSetValueCollectionConverter());
#endif
#endif
        }