私は2つのプロパティ(xsdからxsd.exe
を使用して生成されます)を持つクラスを用意して、それらを埋め込み、以下のコードでxmlにシリアル化しようとします。フィールドを表示しないXMLSerializerを使用してクラスをシリアライズするC#
私はそれの要素でXMLを取得することができるが、私は
OrganizationDetail objOrgDet = new OrganizationDetail();
objOrg.IsDataLimitedSet =true;
Organization objOrg = new Organization();
objOrg.Orgainzation_Detail = objOrgDet;
XmlSerializer serailizer = new XmlSerializer(typeof(Organization));
StringWriter strwritter = new StringWriter();
serailizer.Serialize(strwritter, objOrg);
string xml = strwritter.ToString();
が割り当てられている、得られたXMLこれは持っていません
<?xml version="1.0" encoding="utf-16"?>
<Organization xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Organization_DETAIL xmlns="http://www.mismo.org/residential/2009/schemas" />
</Organization>
でそのフィールド/要素なしフィールド私は設定しました。
に設定する必要がありますDataLimited' 。 'IsDataLimitedSet'は' XmlIgnore'で装飾されていて、それが表示されないように期待しています。 – rene
@rene yep私はそれを見つけましたが、なぜこのSystem.Xml.Serialization.XmlIgnoreAttribute()アノテーションにヒントが追加されていますか? – sudhir
はい、xsi:nil = "true"を持つ要素、またはminoccurs = 0を持つ要素に対してIIRCが追加され、クラスのnull以外の型にマップされます。デシリアライゼーション中に、要素がペイロードに存在するかどうかに応じて、Is [NameofProperty] Setがtrueまたはfalseのいずれであるかにかかわらず、null不可能な型はデフォルト値を持ちます。 – rene