C# 如何在C中指定类对象中的强制属性#
我正在使用c#在.Net上工作。在c#类中,类希望使用可选属性,就像我有PERSON类一样,其中包含名称、年龄、城市和性别等属性C# 如何在C中指定类对象中的强制属性#,c#,oop,c#-2.0,C#,Oop,C# 2.0,我正在使用c#在.Net上工作。在c#类中,类希望使用可选属性,就像我有PERSON类一样,其中包含名称、年龄、城市和性别等属性 public class PERSON { public string NAME{get; set;}; public int AGE {get; set;} public string CITY {get; set;} public string GENDER {get; set;} } 现在我为NAME、AGE和CITY分配了属性值
public class PERSON
{
public string NAME{get; set;};
public int AGE {get; set;}
public string CITY {get; set;}
public string GENDER {get; set;}
}
现在我为NAME、AGE和CITY分配了属性值
PERSON objper = new PERSON();
objper.NAME="ABC";
objper.AGE="22";
objper.CITY="NYC";
string strresult = calPerson(objper);
现在我将这个PERSON对象“objper”传递给一个方法,该方法以如下xml格式返回PERSON的属性值
public string calPerson(PERSON objPerson)
{
//"<xml><name>abc</name><age>22</age><city>nyc</city><gender></gender></xml>"
return xml formated string.
}
公共字符串calPerson(PERSON objPerson)
{
//“abc22nyc”
返回xml格式的字符串。
}
在创建xml格式的字符串时,即使不向其发送任何值,我也会使用空值获取性别节点
我只要
<xml>
<name>abc</name><age>22</age><city>nyc</city>
</xml>
<xml>
<gender>male</gender>
</xml>
abc22nyc
作为输出
现在我有了另一个方法calGender(),它接受PERSON对象
objper = new PERSON();
objper.GENDER="male";
public string calGender(PERSON objPerson)
{
//"<xml><name></name><age></age><city></city><gender>male</gender></xml>"
return xml formated string.
}
objper=newperson();
objper.GENDER=“男”;
公共字符串calGender(PERSON objPerson)
{
//“男性”
返回xml格式的字符串。
}
在创建xml格式的字符串时,我得到的name、age和city节点值为null,即使没有向其发送任何值
我只要
<xml>
<name>abc</name><age>22</age><city>nyc</city>
</xml>
<xml>
<gender>male</gender>
</xml>
男性的
作为输出
所以,
我只想对calPerson()方法使用名称、年龄和城市属性。我不希望PERSON类中有性别属性。
我只想将性别属性用于calGender()方法。我不想在PERSON类中使用NAME、AGE和CITY属性
请建议我怎么做
AnilJayanti。您可以很好地使用内置的序列化程序,如
DataContractSerializer
或XmlSerializer
,并使用[XmlIgnore]
属性跳过任何不希望序列化的属性
有关更多详细信息,请参阅您可以很好地使用内置序列化程序,如
DataContractSerializer
或XmlSerializer
,并使用[XmlIgnore]
属性跳过任何不希望序列化的属性
有关更多详细信息,请参阅
在调用“calPerson()”时使用PERSON,在“calGender()中使用PERSON1”
调用“calPerson()”时使用PERSON,调用“calGender()”时使用PERSON1是否使用内置的XML序列化程序?如果是这样,请尝试使用相同的名称创建一些附加的
PERSON
属性,但添加指定的后缀,例如:
[XmlIgnore]
public bool GENDERSpecified { get { return !String.IsNullOrEmpty(GENDER); } }
这应该指示XMLSerialiser仅输出性别节点(如果它有值)
详情如下:
您是否正在使用内置的XML serialiser?如果是这样,请尝试使用相同的名称创建一些附加的PERSON
属性,但添加指定的后缀,例如:
[XmlIgnore]
public bool GENDERSpecified { get { return !String.IsNullOrEmpty(GENDER); } }
这应该指示XMLSerialiser仅输出性别节点(如果它有值)
详情如下: