• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# MemberSerialization类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中MemberSerialization的典型用法代码示例。如果您正苦于以下问题:C# MemberSerialization类的具体用法?C# MemberSerialization怎么用?C# MemberSerialization使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



MemberSerialization类属于命名空间,在下文中一共展示了MemberSerialization类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: CreateProperties

        protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
        {
            var properties = base.CreateProperties(type, memberSerialization);
            var updateableProperties = new List<JsonProperty>();

            foreach (var property in properties)
            {
                foreach (var o in type
                    .GetRuntimeProperty(property.PropertyName)
                    .GetCustomAttributes(typeof(UpdateableAttribute), false))
                {
                    var a = (UpdateableAttribute)o;
                    if (a.Updateable)
                    {
                        updateableProperties.Add(property);
                    }
                }
            }

            var additionalUpdateableProperties = properties
                .Where(p => !type.GetRuntimeProperty(p.PropertyName).GetCustomAttributes(typeof(UpdateableAttribute), false).Any())
                .ToList();

            updateableProperties.AddRange(additionalUpdateableProperties);

            return updateableProperties;
        }
开发者ID:mcoke,项目名称:Force.com-Toolkit-for-NET,代码行数:27,代码来源:UpdateableContractResolver.cs


示例2: CreateProperty

        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            JsonProperty res = base.CreateProperty(member, memberSerialization);
            res.Required = Required.AllowNull;

            return res;
        }
开发者ID:Rigby93,项目名称:TMDbLib,代码行数:7,代码来源:FailingContractResolver.cs


示例3: CreateProperties

            protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
            {
                var inheritedProperties = new List<JsonProperty>();

                if (type.BaseType != null)
                {
                    // recursively add properties from base types
                    inheritedProperties.AddRange(CreateProperties(type.BaseType, memberSerialization));
                }

                var jsonPropertiesFromFields = type
                    .GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
                    .Select(f =>
                    {
                        var jsonProperty = CreateProperty(f, memberSerialization);
                        jsonProperty.Writable = jsonProperty.Readable = true;
                        return jsonProperty;
                    })
                    .ToArray();

                var jsonPropertiesToKeep = jsonPropertiesFromFields
                    .Concat(inheritedProperties)
                    .GroupBy(p => p.UnderlyingName)
                    .Select(g => g.First()) //< only keep first occurrency for each underlying name - weeds out dupes
                    .Where(g => !(g.DeclaringType == typeof(AggregateRoot) && g.PropertyType == typeof(IUnitOfWork))) //< skip unit of work property
                    .ToList();

                return jsonPropertiesToKeep;
            }
开发者ID:RichieYang,项目名称:Cirqus,代码行数:29,代码来源:Sturdylizer.cs


示例4: CreateProperties

 protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
 {
     return
         base.CreateProperties(type, memberSerialization)
             .Where(p => !_excludedProperties.Contains(p.PropertyName))
             .ToList();
 }
开发者ID:ParkitectNexus,项目名称:AssetTools,代码行数:7,代码来源:DumpDataResolver.cs


示例5: CreateProperties

        protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
        {
            IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);

            IList<JsonProperty> convertedProperties = new List<JsonProperty>();
            foreach (var p in properties)
            {
                IDocumentPropertySetting documentProperty = null;
                db.SharedSetting.Collection.ChangeDocumentPropertyForType(type, p.UnderlyingName, x => documentProperty = x);
                if (documentProperty != null)
                {
                    if (documentProperty.IgnoreProperty)
                        continue;
                }

                p.PropertyName = db.SharedSetting.Collection.ResolvePropertyName(type, p.UnderlyingName);

                if (p.PropertyName == "_key" || p.PropertyName == "_id" || p.PropertyName == "_rev")
                    p.NullValueHandling = NullValueHandling.Ignore;

                convertedProperties.Add(p);
            }

            return convertedProperties;
        }
开发者ID:GOArango,项目名称:arangoclient.net,代码行数:25,代码来源:DocumentContractResolver.cs


示例6: CreateProperty

        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            var property = base.CreateProperty(member, memberSerialization);

            if (!member.DeclaringType.IsGenericType)
                return property;

            var declaringType = member.DeclaringType.GetGenericTypeDefinition();
            if (declaringType == typeof(ListResponse<>))
            {
                var type = member.ReflectedType.GenericTypeArguments[0];
                var attr = type.GetCustomAttribute<RootPropertyNameAttribute>(true);

                property.PropertyName = attr.PluralName;
            }

            if (declaringType == typeof(ItemResponse<>))
            {
                var type = member.ReflectedType.GenericTypeArguments[0];
                var attr = type.GetCustomAttribute<RootPropertyNameAttribute>(true);

                property.PropertyName = attr.SingularName;
            }

            return property;
        }
开发者ID:ElijahGlover,项目名称:GeckoApi,代码行数:26,代码来源:ResponseContractResolver.cs


示例7: CreateProperties

 protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
 {
     var properties = base.CreateProperties(type, memberSerialization);
     var photosProperty = properties.Single(x => x.UnderlyingName == "DrawingSession");
     properties.Remove(photosProperty);
     return properties;
 }
开发者ID:Costo,项目名称:sketch,代码行数:7,代码来源:DrawingSessionContractResolver.cs


示例8: CreateProperty

 protected override JsonProperty CreateProperty(
     MemberInfo member, MemberSerialization memberSerialization) {
     JsonProperty property = base.CreateProperty(member, memberSerialization);
     Predicate<object> shouldSerialize = property.ShouldSerialize;
     property.ShouldSerialize = obj => _includeProperty(property) && (shouldSerialize == null || shouldSerialize(obj));
     return property;
 }
开发者ID:khoussem,项目名称:Exceptionless,代码行数:7,代码来源:ConditionalContractResolver.cs


示例9: CreateProperty

		protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
		{
			var property = base.CreateProperty(member, memberSerialization);
			if (IsIgnored(property.DeclaringType, property.PropertyName))
				property.ShouldSerialize = instance => false;
			return property;
		}
开发者ID:andyliyuze,项目名称:POPForums,代码行数:7,代码来源:IgnorePropertyContractResolver.cs


示例10: CreateProperty

        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) {
            JsonProperty property = base.CreateProperty(member, memberSerialization);

            Predicate<object> shouldSerialize = property.ShouldSerialize;
            property.ShouldSerialize = obj => (shouldSerialize == null || shouldSerialize(obj)) && !property.IsValueEmptyCollection(obj);
            return property;
        }
开发者ID:aamarber,项目名称:Exceptionless,代码行数:7,代码来源:LowerCaseUnderscorePropertyNamesContractResolver.cs


示例11: CreateProperty

        /// <summary>
        /// Creates a 
        /// <see cref="T:Newtonsoft.Json.Serialization.JsonProperty" /> for the given 
        /// <see cref="T:System.Reflection.MemberInfo" />.
        /// </summary>
        /// <param name="member">The member to create a <see cref="T:Newtonsoft.Json.Serialization.JsonProperty" /> for.</param>
        /// <param name="memberSerialization">The member's parent <see cref="T:Newtonsoft.Json.MemberSerialization" />.</param>
        /// <returns>
        /// A created <see cref="T:Newtonsoft.Json.Serialization.JsonProperty" /> for the given <see cref="T:System.Reflection.MemberInfo" />.
        /// </returns>
        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            try
            {
                var property = base.CreateProperty(member, memberSerialization);

                if (!property.Writable)
                {
                    var prop = member as PropertyInfo;

                    if (prop != null)
                    {
                        var hasPrivateSetter = prop.GetSetMethod(true) != null;
                        property.Writable = hasPrivateSetter;
                    }
                }

                return property;
            }
            catch(Exception ex)
            {
                Log.Fatal(string.Format("SerializationContracts failed to create a required property for '{0}'!",member.Name));
                Log.Fatal(string.Format("SerializationContracts failed with the following message: {0}", ex.Message));
                Log.Fatal(string.Format("SerializationContract failures could be caused by corrupt save files."));
            }

            return null;
        }
开发者ID:ramseur,项目名称:MudDesigner,代码行数:38,代码来源:SerializationContracts.cs


示例12: CreateProperty

        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            JsonProperty property = base.CreateProperty(member, memberSerialization);

            switch (_requestType)
            {
                case RequestType.Get:
                    {
                        if (property.AttributeProvider.GetAttributes(false).Any(w => ReferenceEquals(w.TypeId, typeof(GetColumnAttribute))))
                        {
                            return property;
                        }
                        break;
                    }
                case RequestType.Post:
                {
                    if (property.AttributeProvider.GetAttributes(false).Any(w => ReferenceEquals(w.TypeId, typeof(PostColumnAttribute))))
                    {
                        return property;
                    }
                    break;
                }
                case RequestType.Put:
                {
                    if (property.AttributeProvider.GetAttributes(false).Any(w => ReferenceEquals(w.TypeId, typeof(PostColumnAttribute))))
                    {
                        return property;
                    }
                    break;
                }
            }

            return null;
        }
开发者ID:danpadua,项目名称:runrunit4net,代码行数:34,代码来源:RunrunitSerializeEntityResolver.cs


示例13: CreateProperties

 protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
 {
     return base.CreateProperties(type, memberSerialization).Where((prop) => {
         return prop.PropertyName != "__interceptors" &&
             prop.PropertyName != "__target";
     }).ToList();
 }
开发者ID:kevinswiber,项目名称:zetta-dot-net,代码行数:7,代码来源:ZettaInteropContractResolver.cs


示例14: CreateProperty

        protected override JsonProperty CreateProperty(MemberInfo member,
            MemberSerialization memberSerialization)
        {
            JsonProperty property = base.CreateProperty(member, memberSerialization);
            //Console.WriteLine("dont worry, im right here");

            if (property.DeclaringType == typeof(System.Int32) &&
                property.PropertyName == "ExitCode")
            {
                property.ShouldSerialize = instanceOfProblematic => false;
            }/*
            property.ShouldSerialize = instance =>
            {
                try
                {
                    PropertyInfo prop = (PropertyInfo)member;
                    if (prop.CanRead)
                    {
                        prop.GetValue(instance, null);
                        return true;
                    }
                }
                catch
                {
                }
                return false;
            };*/
            return property;
        }
开发者ID:coder-guy22296,项目名称:groupVolumeControl,代码行数:29,代码来源:SerializableContractResolver+.cs


示例15: CreateProperty

        /// <summary>
        /// Creates a <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> for the given <see cref="T:System.Reflection.MemberInfo"/>.
        /// </summary>
        /// <param name="memberSerialization">The member's parent <see cref="T:Newtonsoft.Json.MemberSerialization"/>.</param><param name="member">The member to create a <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> for.</param>
        /// <returns>
        /// A created <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> for the given <see cref="T:System.Reflection.MemberInfo"/>.
        /// </returns>
        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            var jsonProp = base.CreateProperty(member, memberSerialization);

            var sfAttrs = member.GetCustomAttributes(typeof(SalesForceAttribute), true);

            // if there are no attr then no need to process any further
            if (!sfAttrs.Any()) return jsonProp;

            var sfAttr = sfAttrs.FirstOrDefault() as SalesForceAttribute;
            // if there are no attr then no need to process any further
            if (sfAttr == null)
            {
                return jsonProp;
            }

            // if ignore then we should skip it and return null
            if (sfAttr.Ignore || (updateResolver && sfAttr.IgnoreUpdate))
            {
                return null;
            }

            // if no fieldname then we use the default
            if (string.IsNullOrEmpty(sfAttr.FieldName))
            {
                return jsonProp;
            }

            jsonProp.PropertyName = sfAttr.FieldName;

            return jsonProp;
        }
开发者ID:RomeoQNgo,项目名称:SalesforceSharp,代码行数:39,代码来源:SalesForceContractResolver.cs


示例16: CreateProperties

        protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
        {
            var properties = base.CreateProperties(type, memberSerialization);

            if (IgnoreList == null)
                throw new Exception("No ignore list supplied");

            Type matchedType = null;
            if (IgnoreList.ContainsKey(type))
                matchedType = type;
            else if (type.BaseType != null && IgnoreList.ContainsKey(type.BaseType))
                matchedType = type.BaseType;

            if (matchedType != null)
            {
                var list = IgnoreList[matchedType];
                foreach (var property in properties)
                {
                    if (list.Contains(property.PropertyName))
                    {
                        property.Ignored = true;
                    }
                }
            }

            return properties;
        }
开发者ID:changLiuUNSW,项目名称:BDSystem,代码行数:27,代码来源:CustomJsonResolver.cs


示例17: CreateProperty

        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            var property = base.CreateProperty(member, memberSerialization);

            var isDefaultValueIgnored = ((property.DefaultValueHandling ?? DefaultValueHandling.Ignore) & DefaultValueHandling.Ignore) != 0;
            if (!isDefaultValueIgnored || typeof (string).IsAssignableFrom(property.PropertyType) || !typeof (IEnumerable).IsAssignableFrom(property.PropertyType))
            {
            // The property should not be ignored, or is of the type String or is not of the type IEnumerable
            // Just return the property
            return property;
            }

            // This check return true if the collection contains items
            Predicate<object> newShouldSerialize = obj =>
            {
            var collection = property.ValueProvider.GetValue(obj) as ICollection;
            return collection == null || collection.Count != 0;
            };

            var oldShouldSerialize = property.ShouldSerialize;

            // The property should serialize if the original check (if any) and the new check both incicate the value should be serialized
            property.ShouldSerialize = oldShouldSerialize != null ? o => oldShouldSerialize(o) && newShouldSerialize(o) : newShouldSerialize;

            return property;
        }
开发者ID:eNeRGy164,项目名称:ReduceJsonTraffic,代码行数:26,代码来源:SkipEmptyCollectionsContractResolver.cs


示例18: CreateProperty

        /// <summary>
        /// Creates a <see cref="T:Newtonsoft.Json.Serialization.JsonProperty" /> for the given <see cref="T:System.Reflection.MemberInfo" />.
        /// </summary>
        /// <param name="member">The member to create a <see cref="T:Newtonsoft.Json.Serialization.JsonProperty" /> for.</param>
        /// <param name="memberSerialization">The member's parent <see cref="T:Newtonsoft.Json.MemberSerialization" />.</param>
        /// <returns>
        /// A created <see cref="T:Newtonsoft.Json.Serialization.JsonProperty" /> for the given <see cref="T:System.Reflection.MemberInfo" />.
        /// </returns>
        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            var jsonProperty = base.CreateProperty(member, memberSerialization);
            jsonProperty.ShouldSerialize = this.ShouldSerialize(jsonProperty);

            return jsonProperty;
        }
开发者ID:gmershad,项目名称:JsonDotNetCustomContractResolvers,代码行数:15,代码来源:CustomPropertyContractResolver.cs


示例19: CreateProperties

 protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
 {
     if (type == typeof(Vector2) || type == typeof(Vector3) || type == typeof(Vector4))
         return base.CreateProperties(type, memberSerialization).Where(p => p.PropertyName.Length == 1).ToList();
     else
         return base.CreateProperties(type, memberSerialization);
 }
开发者ID:NightmareX1337,项目名称:ULF,代码行数:7,代码来源:CustomContractResolver.cs


示例20: CreateProperties

        protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
        {
            IList<JsonProperty> objProperties = new List<JsonProperty>();
            IList<JsonProperty> properties = base.CreateProperties(type, memberSerialization);

            //objProperties = properties.Where(p => mPropertiesToSerialize.Contains(p.PropertyName)).ToList();

            //foreach (var jProperty in properties)
            //{
            //    if (!jProperty.PropertyType.IsClass)
            //        continue;

            //    var nestedObjProperties = base.CreateProperties(jProperty.PropertyType, memberSerialization);
            //    foreach (var nestedjProperty in nestedObjProperties)
            //    {
            //        if (objProperties.Any(nj => (nj.PropertyName == nestedjProperty.PropertyName)))
            //            continue;

            //        if (mPropertiesToSerialize.Contains(nestedjProperty.PropertyName))
            //        {
            //            objProperties.Add(nestedjProperty);
            //        }
            //    }
            //}
            return objProperties;
        }
开发者ID:mcoke,项目名称:Force.com-Toolkit-for-NET,代码行数:26,代码来源:SalesforceContractResolver.cs



注:本文中的MemberSerialization类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# MemberType类代码示例发布时间:2022-05-24
下一篇:
C# MemberRequestKind类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap