WritablePropertiesOnlyResolver
Namespace: Murder.Serialization
Assembly: Murder.dll
public class WritablePropertiesOnlyResolver : DefaultContractResolver, IContractResolver
Custom contract resolver for serializing our game assets. This currently filters out getters and filters in readonly fields.
Implements: DefaultContractResolver, IContractResolver
⭐ Constructors
public WritablePropertiesOnlyResolver()
⭐ Properties
DefaultMembersSearchFlags
public BindingFlags DefaultMembersSearchFlags { get; public set; }
Returns
BindingFlags
DynamicCodeGeneration
public bool DynamicCodeGeneration { get; }
Returns
bool
IgnoreIsSpecifiedMembers
public bool IgnoreIsSpecifiedMembers { get; public set; }
Returns
bool
IgnoreSerializableAttribute
public bool IgnoreSerializableAttribute { get; public set; }
Returns
bool
IgnoreSerializableInterface
public bool IgnoreSerializableInterface { get; public set; }
Returns
bool
IgnoreShouldSerializeMembers
public bool IgnoreShouldSerializeMembers { get; public set; }
Returns
bool
NamingStrategy
public NamingStrategy NamingStrategy { get; public set; }
Returns
NamingStrategy
SerializeCompilerGeneratedMembers
public bool SerializeCompilerGeneratedMembers { get; public set; }
Returns
bool
⭐ Methods
CreateConstructorParameters(ConstructorInfo, JsonPropertyCollection)
protected virtual IList<T> CreateConstructorParameters(ConstructorInfo constructor, JsonPropertyCollection memberProperties)
Parameters
constructor
ConstructorInfo
memberProperties
JsonPropertyCollection
Returns
IList<T>
CreateProperties(Type, MemberSerialization)
protected virtual IList<T> CreateProperties(Type type, MemberSerialization memberSerialization)
Only create properties that are able to be set. See: https://stackoverflow.com/a/18548894.
Parameters
type
Type
memberSerialization
MemberSerialization
Returns
IList<T>
CreateMemberValueProvider(MemberInfo)
protected virtual IValueProvider CreateMemberValueProvider(MemberInfo member)
Parameters
member
MemberInfo
Returns
IValueProvider
CreateArrayContract(Type)
protected virtual JsonArrayContract CreateArrayContract(Type objectType)
Parameters
objectType
Type
Returns
JsonArrayContract
CreateContract(Type)
protected virtual JsonContract CreateContract(Type objectType)
Parameters
objectType
Type
Returns
JsonContract
ResolveContractConverter(Type)
protected virtual JsonConverter ResolveContractConverter(Type objectType)
Parameters
objectType
Type
Returns
JsonConverter
CreateDictionaryContract(Type)
protected virtual JsonDictionaryContract CreateDictionaryContract(Type objectType)
Parameters
objectType
Type
Returns
JsonDictionaryContract
CreateDynamicContract(Type)
protected virtual JsonDynamicContract CreateDynamicContract(Type objectType)
Parameters
objectType
Type
Returns
JsonDynamicContract
CreateISerializableContract(Type)
protected virtual JsonISerializableContract CreateISerializableContract(Type objectType)
Parameters
objectType
Type
Returns
JsonISerializableContract
CreateLinqContract(Type)
protected virtual JsonLinqContract CreateLinqContract(Type objectType)
Parameters
objectType
Type
Returns
JsonLinqContract
CreateObjectContract(Type)
protected virtual JsonObjectContract CreateObjectContract(Type objectType)
Parameters
objectType
Type
Returns
JsonObjectContract
CreatePrimitiveContract(Type)
protected virtual JsonPrimitiveContract CreatePrimitiveContract(Type objectType)
Parameters
objectType
Type
Returns
JsonPrimitiveContract
CreateProperty(MemberInfo, MemberSerialization)
protected virtual JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
While we ignore getter properties, we do not want to ignore readonly fields.
Parameters
member
MemberInfo
memberSerialization
MemberSerialization
Returns
JsonProperty
CreatePropertyFromConstructorParameter(JsonProperty, ParameterInfo)
protected virtual JsonProperty CreatePropertyFromConstructorParameter(JsonProperty matchingMemberProperty, ParameterInfo parameterInfo)
Parameters
matchingMemberProperty
JsonProperty
parameterInfo
ParameterInfo
Returns
JsonProperty
CreateStringContract(Type)
protected virtual JsonStringContract CreateStringContract(Type objectType)
Parameters
objectType
Type
Returns
JsonStringContract
GetSerializableMembers(Type)
protected virtual List<T> GetSerializableMembers(Type t)
Make sure we fetch all the fields that define [ShowInEditor] in addition to JsonProperty.
Parameters
t
Type
Returns
List<T>
ResolveDictionaryKey(string)
protected virtual string ResolveDictionaryKey(string dictionaryKey)
Parameters
dictionaryKey
string
Returns
string
ResolveExtensionDataName(string)
protected virtual string ResolveExtensionDataName(string extensionDataName)
Parameters
extensionDataName
string
Returns
string
ResolvePropertyName(string)
protected virtual string ResolvePropertyName(string propertyName)
Parameters
propertyName
string
Returns
string
GetResolvedPropertyName(string)
public string GetResolvedPropertyName(string propertyName)
Parameters
propertyName
string
Returns
string
ResolveContract(Type)
public virtual JsonContract ResolveContract(Type type)
Parameters
type
Type
Returns
JsonContract
⚡