Microsoft の How to: Create a Basic Data Contract for a Class or Structureを見ていますが、多くの疑問が残ります。
彼らはこの非常に単純な例を提供します:
using System;
using System.Runtime.Serialization;
[DataContract]
public class Person
{
// This member is serialized.
[DataMember]
internal string FullName;
// This is serialized even though it is private.
[DataMember]
private int Age;
// This is not serialized because the DataMemberAttribute
// has not been applied.
private string MailingAddress;
// This is not serialized, but the property is.
private string telephoneNumberValue;
[DataMember]
public string TelephoneNumber
{
get { return telephoneNumberValue; }
set { telephoneNumberValue = value; }
}
}
私の場合、ADUser
(Active Directory User) という別のカスタム クラス オブジェクトも含める必要があります。
ADUser
でマークする必要があることは理解してDataContractAttribute
いますが、正確にそれを行う方法がわかりません。
これも Microsoft のクラスですが、今回はADUser
フィールドが追加されています。
using System;
using System.Runtime.Serialization;
[DataContract]
public class Person
{
// This member is serialized.
[DataMember]
internal string FullName;
// This is serialized even though it is private.
[DataMember]
private int Age;
// This is not serialized because the DataMemberAttribute
// has not been applied.
private string MailingAddress;
// This is not serialized, but the property is.
private string telephoneNumberValue;
[DataMember]
public string TelephoneNumber
{
get { return telephoneNumberValue; }
set { telephoneNumberValue = value; }
}
[DataMember]
public ADUser UserInfo { get; set; }
}
ADUser
クラスでどのように、または何を行う必要があるかはよくわかりませんが、private
手つかずのままにしておくことができると確信しています。
このクラスの例をどのように修正する必要がありますか?ADUser
public class ADUser
{
private string first, last, loginID;
public ADUser() {
first = null;
last = null;
loginID = null;
}
private void getInfo() {
// code goes here
// which sets loginID;
}
public void SetName(string first, string last) {
this.first = first;
this.last = last;
getInfo();
}
public string LoginID { get { return loginID; } }
}