C# EmitDefaultValue设置为false将在WCF和C中适用于int、long、float和DateTime#
EmitDefaultValue设置为false不适用于int和其他数据类型,请告知我。我想从xml中删除空值字段。它似乎只适用于字符串类型 这些是实现这一目标的其他更好的方法吗 请做必要的事 数据合同C# EmitDefaultValue设置为false将在WCF和C中适用于int、long、float和DateTime#,c#,asp.net,wcf,C#,Asp.net,Wcf,EmitDefaultValue设置为false不适用于int和其他数据类型,请告知我。我想从xml中删除空值字段。它似乎只适用于字符串类型 这些是实现这一目标的其他更好的方法吗 请做必要的事 数据合同 [Serializable] [DataContract] public class AddressContract { private int addressTypeIdField = 0; private int parentAd
[Serializable]
[DataContract]
public class AddressContract
{
private int addressTypeIdField = 0;
private int parentAddressTypeIDField = 0;
private string postCodeField = null;
private string phoneFlagField = null;
private string emailFlagField = null;
private float geoCodeLattitudeField = 0.0F;
private float geoCodeLongitudeField = 0.0F;
[DataMember(EmitDefaultValue = false)]
public int AddressTypeId
{
get
{
return this.addressTypeIdField;
}
set
{
this.addressTypeIdField = value;
}
}
[DataMember(EmitDefaultValue = false)]
public int ParentAddressTypeID
{
get
{
return this.parentAddressTypeIDField;
}
set
{
this.parentAddressTypeIDField = value;
}
}
[DataMember(EmitDefaultValue = false)]
public string PostCode
{
get
{
return this.postCodeField;
}
set
{
this.postCodeField = value;
}
}
[DataMember(EmitDefaultValue = false)]
public string PhoneFlag
{
get
{
return this.phoneFlagField;
}
set
{
this.phoneFlagField = value;
}
}
[DataMember(EmitDefaultValue = false)]
public string EmailFlag
{
get
{
return this.emailFlagField;
}
set
{
this.emailFlagField = value;
}
}
[DataMember(EmitDefaultValue = false)]
public float GeoCodeLattitude
{
get
{
return this.geoCodeLattitudeField;
}
set
{
this.geoCodeLattitudeField = value;
}
}
[DataMember(EmitDefaultValue = false)]
public float GeoCodeLongitude
{
get
{
return this.geoCodeLongitudeField;
}
set
{
this.geoCodeLongitudeField = value;
}
}
}
根据这个链接
可以肯定它也可以与int-value一起工作您可以发布您的数据契约吗?EmitDefaultValue应该是所有这些类型的正确方法。@Buh Buh-EmitDefaultValue除了字符串类型之外不工作您的契约看起来正确。您是如何生成/查看xml的?在误解了所有内容之后:)我必须进行测试,合同工作正常。