C# 如何在C中指定类对象中的强制属性#

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分配了属性值

我正在使用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分配了属性值

 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仅输出性别节点(如果它有值)

详情如下: