本文整理汇总了C#中System.Reflection.PropertyInfo.IsAutoProperty方法的典型用法代码示例。如果您正苦于以下问题:C# PropertyInfo.IsAutoProperty方法的具体用法?C# PropertyInfo.IsAutoProperty怎么用?C# PropertyInfo.IsAutoProperty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Reflection.PropertyInfo
的用法示例。
在下文中一共展示了PropertyInfo.IsAutoProperty方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: IsSerializableProperty
public bool IsSerializableProperty(PropertyInfo property)
{
// tagged with one of the NotSerialized attributes? no soup for you!
if (attributes.NotSerialized.Any(property.IsDefined))
return false;
// disallow properties with side effects, could be dangerous
// (you could remove this constraint, if you know what you're doing...)
if (!property.IsAutoProperty())
return false;
// either the getter or setter has to be public
// otherwise the property has to be marked with an attribute from the SerializeMember array
if (!(property.GetGetMethod(true).IsPublic ||
property.GetSetMethod(true).IsPublic ||
attributes.SerializeMember.Any(property.IsDefined)))
return false;
// finally, a property is serializable if its type is
bool serializable = IsSerializableType(property.PropertyType);
return serializable;
}
示例2: DefaultIsSerializableProperty
public static bool DefaultIsSerializableProperty(PropertyInfo property)
{
if (DontSerializeMemberAttributes.Any(property.IsDefined))
return false;
if (!property.IsAutoProperty())
return false;
if (!(property.GetGetMethod(true).IsPublic ||
property.GetSetMethod(true).IsPublic ||
SerializeMemberAttributes.Any(property.IsDefined)))
return false;
bool serializable = IsSerializableType(property.PropertyType);
return serializable;
}
示例3: IsSerializableProperty
/// <summary>
/// A property is serializable if:
/// - it's not marked with any of the 'DontSerializeMember' attributes
/// - it's an auto-property
/// - has a public getter or setter, otherwise must be annotated with any of the 'SerializeMember' attributes
/// - its type is serializable
/// - static properties that meet the previous requirements are always serialized in Better[Behaviour|ScriptableObject],
/// and in System.Objects if the serializer of use supports it (FullSerialier doesn't)
/// </summary>
public override bool IsSerializableProperty(PropertyInfo property)
{
if (DontSerializeMember.Any(property.IsDefined))
return false;
if (!property.IsAutoProperty())
return false;
if (!(property.GetGetMethod(true).IsPublic ||
property.GetSetMethod(true).IsPublic ||
SerializeMember.Any(property.IsDefined)))
return false;
bool serializable = IsSerializableType(property.PropertyType);
return serializable;
}
示例4: CreatePropertyWrapper
public static IPropertyWrapper CreatePropertyWrapper(PropertyInfo property)
{
if (property.IsAutoProperty())
return CreateFieldWrapper(property.GetBackingField());
else if (ApplicationUtility.IsAOT)
return new PropertyWrapper(property);
else
{
var wrapperType = typeof(PropertyWrapper<,>).MakeGenericType(property.DeclaringType, property.PropertyType);
return (IPropertyWrapper)Activator.CreateInstance(wrapperType, property);
}
}