internal FieldModel(string name, Type fieldType, TypeDesc fieldTypeDesc, bool checkSpecified, bool checkShouldPersist, bool readOnly) { _fieldTypeDesc = fieldTypeDesc; _name = name; _fieldType = fieldType; _checkSpecified = checkSpecified ? SpecifiedAccessor.ReadWrite : SpecifiedAccessor.None; _checkShouldPersist = checkShouldPersist; _readOnly = readOnly; }
internal FieldModel(string name, Type fieldType, TypeDesc fieldTypeDesc, bool checkSpecified, bool checkShouldPersist, bool readOnly) { this.fieldTypeDesc = fieldTypeDesc; this.name = name; this.fieldType = fieldType; this.checkSpecified = checkSpecified ? SpecifiedAccessor.ReadWrite : SpecifiedAccessor.None; this.checkShouldPersist = checkShouldPersist; this.readOnly = readOnly; }
private MemberMapping(MemberMapping mapping) : base(mapping) { _name = mapping._name; _checkShouldPersist = mapping._checkShouldPersist; _checkSpecified = mapping._checkSpecified; _isReturnValue = mapping._isReturnValue; _readOnly = mapping._readOnly; _sequenceId = mapping._sequenceId; _memberInfo = mapping._memberInfo; _checkSpecifiedMemberInfo = mapping._checkSpecifiedMemberInfo; _checkShouldPersistMethodInfo = mapping._checkShouldPersistMethodInfo; }
MemberMapping(MemberMapping mapping) : base(mapping) { this.name = mapping.name; this.checkShouldPersist = mapping.checkShouldPersist; this.checkSpecified = mapping.checkSpecified; this.isReturnValue = mapping.isReturnValue; this.readOnly = mapping.readOnly; this.sequenceId = mapping.sequenceId; this.memberInfo = mapping.memberInfo; this.checkSpecifiedMemberInfo = mapping.checkSpecifiedMemberInfo; this.checkShouldPersistMethodInfo = mapping.checkShouldPersistMethodInfo; }
internal FieldModel(MemberInfo memberInfo, Type fieldType, TypeDesc fieldTypeDesc) { _name = memberInfo.Name; _fieldType = fieldType; _fieldTypeDesc = fieldTypeDesc; _memberInfo = memberInfo; _checkShouldPersistMethodInfo = memberInfo.DeclaringType.GetMethod("ShouldSerialize" + memberInfo.Name, new Type[0]); _checkShouldPersist = _checkShouldPersistMethodInfo != null; FieldInfo specifiedField = memberInfo.DeclaringType.GetField(memberInfo.Name + "Specified"); if (specifiedField != null) { if (specifiedField.FieldType != typeof(bool)) { throw new InvalidOperationException(string.Format(ResXml.XmlInvalidSpecifiedType, specifiedField.Name, specifiedField.FieldType.FullName, typeof(bool).FullName)); } _checkSpecified = specifiedField.IsInitOnly ? SpecifiedAccessor.ReadOnly : SpecifiedAccessor.ReadWrite; _checkSpecifiedMemberInfo = specifiedField; } else { PropertyInfo specifiedProperty = memberInfo.DeclaringType.GetProperty(memberInfo.Name + "Specified"); if (specifiedProperty != null) { if (StructModel.CheckPropertyRead(specifiedProperty)) { _checkSpecified = specifiedProperty.CanWrite ? SpecifiedAccessor.ReadWrite : SpecifiedAccessor.ReadOnly; _checkSpecifiedMemberInfo = specifiedProperty; } if (_checkSpecified != SpecifiedAccessor.None && specifiedProperty.PropertyType != typeof(bool)) { throw new InvalidOperationException(string.Format(ResXml.XmlInvalidSpecifiedType, specifiedProperty.Name, specifiedProperty.PropertyType.FullName, typeof(bool).FullName)); } } } if (memberInfo is PropertyInfo) { _readOnly = !((PropertyInfo)memberInfo).CanWrite; _isProperty = true; } else if (memberInfo is FieldInfo) { _readOnly = ((FieldInfo)memberInfo).IsInitOnly; } }
internal FieldModel(MemberInfo memberInfo, Type fieldType, TypeDesc fieldTypeDesc) { this.name = memberInfo.Name; this.fieldType = fieldType; this.fieldTypeDesc = fieldTypeDesc; this.checkShouldPersist = memberInfo.DeclaringType.GetMethod("ShouldSerialize" + memberInfo.Name, new Type[0]) != null; FieldInfo field = memberInfo.DeclaringType.GetField(memberInfo.Name + "Specified"); if (field != null) { if (field.FieldType != typeof(bool)) { throw new InvalidOperationException(Res.GetString("XmlInvalidSpecifiedType", new object[] { field.Name, field.FieldType.FullName, typeof(bool).FullName })); } this.checkSpecified = field.IsInitOnly ? SpecifiedAccessor.ReadOnly : SpecifiedAccessor.ReadWrite; } else { PropertyInfo property = memberInfo.DeclaringType.GetProperty(memberInfo.Name + "Specified"); if (property != null) { if (StructModel.CheckPropertyRead(property)) { this.checkSpecified = property.CanWrite ? SpecifiedAccessor.ReadWrite : SpecifiedAccessor.ReadOnly; } if ((this.checkSpecified != SpecifiedAccessor.None) && (property.PropertyType != typeof(bool))) { throw new InvalidOperationException(Res.GetString("XmlInvalidSpecifiedType", new object[] { property.Name, property.PropertyType.FullName, typeof(bool).FullName })); } } } if (memberInfo is PropertyInfo) { this.readOnly = !((PropertyInfo)memberInfo).CanWrite; this.isProperty = true; } else if (memberInfo is FieldInfo) { this.readOnly = ((FieldInfo)memberInfo).IsInitOnly; } }
internal FieldModel(MemberInfo memberInfo, Type fieldType, TypeDesc fieldTypeDesc) { this.name = memberInfo.Name; this.fieldType = fieldType; this.fieldTypeDesc = fieldTypeDesc; this.checkShouldPersist = memberInfo.DeclaringType.GetMethod("ShouldSerialize" + memberInfo.Name, new Type[0]) != null; FieldInfo field = memberInfo.DeclaringType.GetField(memberInfo.Name + "Specified"); if (field != null) { if (field.FieldType != typeof(bool)) { throw new InvalidOperationException(Res.GetString("XmlInvalidSpecifiedType", new object[] { field.Name, field.FieldType.FullName, typeof(bool).FullName })); } this.checkSpecified = field.IsInitOnly ? SpecifiedAccessor.ReadOnly : SpecifiedAccessor.ReadWrite; } else { PropertyInfo property = memberInfo.DeclaringType.GetProperty(memberInfo.Name + "Specified"); if (property != null) { if (StructModel.CheckPropertyRead(property)) { this.checkSpecified = property.CanWrite ? SpecifiedAccessor.ReadWrite : SpecifiedAccessor.ReadOnly; } if ((this.checkSpecified != SpecifiedAccessor.None) && (property.PropertyType != typeof(bool))) { throw new InvalidOperationException(Res.GetString("XmlInvalidSpecifiedType", new object[] { property.Name, property.PropertyType.FullName, typeof(bool).FullName })); } } } if (memberInfo is PropertyInfo) { this.readOnly = !((PropertyInfo) memberInfo).CanWrite; this.isProperty = true; } else if (memberInfo is FieldInfo) { this.readOnly = ((FieldInfo) memberInfo).IsInitOnly; } }
internal FieldModel(MemberInfo memberInfo, Type fieldType, TypeDesc fieldTypeDesc) { _name = memberInfo.Name; _fieldType = fieldType; _fieldTypeDesc = fieldTypeDesc; _memberInfo = memberInfo; _checkShouldPersistMethodInfo = memberInfo.DeclaringType.GetMethod("ShouldSerialize" + memberInfo.Name, Array.Empty<Type>()); _checkShouldPersist = _checkShouldPersistMethodInfo != null; FieldInfo specifiedField = memberInfo.DeclaringType.GetField(memberInfo.Name + "Specified"); if (specifiedField != null) { if (specifiedField.FieldType != typeof(bool)) { throw new InvalidOperationException(SR.Format(SR.XmlInvalidSpecifiedType, specifiedField.Name, specifiedField.FieldType.FullName, typeof(bool).FullName)); } _checkSpecified = specifiedField.IsInitOnly ? SpecifiedAccessor.ReadOnly : SpecifiedAccessor.ReadWrite; _checkSpecifiedMemberInfo = specifiedField; } else { PropertyInfo specifiedProperty = memberInfo.DeclaringType.GetProperty(memberInfo.Name + "Specified"); if (specifiedProperty != null) { if (StructModel.CheckPropertyRead(specifiedProperty)) { _checkSpecified = specifiedProperty.CanWrite ? SpecifiedAccessor.ReadWrite : SpecifiedAccessor.ReadOnly; _checkSpecifiedMemberInfo = specifiedProperty; } if (_checkSpecified != SpecifiedAccessor.None && specifiedProperty.PropertyType != typeof(bool)) { throw new InvalidOperationException(SR.Format(SR.XmlInvalidSpecifiedType, specifiedProperty.Name, specifiedProperty.PropertyType.FullName, typeof(bool).FullName)); } } } if (memberInfo is PropertyInfo) { _readOnly = !((PropertyInfo)memberInfo).CanWrite; _isProperty = true; } else if (memberInfo is FieldInfo) { _readOnly = ((FieldInfo)memberInfo).IsInitOnly; } }
internal FieldModel(MemberInfo memberInfo, Type fieldType, TypeDesc fieldTypeDesc) { this.name = memberInfo.Name; this.fieldType = fieldType; this.fieldTypeDesc = fieldTypeDesc; this.memberInfo = memberInfo; this.checkShouldPersistMethodInfo = memberInfo.DeclaringType.GetMethod("ShouldSerialize" + memberInfo.Name, new Type[0]); this.checkShouldPersist = this.checkShouldPersistMethodInfo != null; FieldInfo specifiedField = memberInfo.DeclaringType.GetField(memberInfo.Name + "Specified"); if (specifiedField != null) { if (specifiedField.FieldType != typeof(bool)) { throw new InvalidOperationException(Res.GetString(Res.XmlInvalidSpecifiedType, specifiedField.Name, specifiedField.FieldType.FullName, typeof(bool).FullName)); } this.checkSpecified = specifiedField.IsInitOnly ? SpecifiedAccessor.ReadOnly : SpecifiedAccessor.ReadWrite; this.checkSpecifiedMemberInfo = specifiedField; } else { PropertyInfo specifiedProperty = memberInfo.DeclaringType.GetProperty(memberInfo.Name + "Specified"); if (specifiedProperty != null) { if (StructModel.CheckPropertyRead(specifiedProperty)) { this.checkSpecified = specifiedProperty.CanWrite ? SpecifiedAccessor.ReadWrite : SpecifiedAccessor.ReadOnly; this.checkSpecifiedMemberInfo = specifiedProperty; } if (this.checkSpecified != SpecifiedAccessor.None && specifiedProperty.PropertyType != typeof(bool)) { throw new InvalidOperationException(Res.GetString(Res.XmlInvalidSpecifiedType, specifiedProperty.Name, specifiedProperty.PropertyType.FullName, typeof(bool).FullName)); } } } if (memberInfo is PropertyInfo) { readOnly = !((PropertyInfo)memberInfo).CanWrite; isProperty = true; } else if (memberInfo is FieldInfo) { readOnly = ((FieldInfo)memberInfo).IsInitOnly; } }