-1

クラスも構成されているオブジェクトのインスタンスを作成しようとしています:

[DataContract(Name = "share", Namespace = "")]
public class RequestShareDocument
{
    [DataMember(Order = 0)]
    public string profile_name { get; set; }
    [DataMember(Order = 1)]
    public List<RequestSigner> signers {get; set;}
    [DataMember(Order = 2)]
    public bool createcopy { get; set; }
}

[DataContract(Name = "signer", Namespace = "")]
public class RequestSigner
{
    [DataMember(Order = 0)]
    public string email { get; set; }
    [DataMember(Order = 1)]
    public string order { get; set; }
    [DataMember(Order = 2)]
    public string reminder { get; set; }
    [DataMember(Order = 3)]
    public RequestSignerPermissions permissions { get; set; }
    [DataMember(Order = 4)]
    public string signature_field { get; set; }
}

[DataContract(Name = "permissions", Namespace = "")]
public class RequestSignerPermissions
{
    [DataMember(Order = 0)]
    public bool save_locally {get;set;}
    [DataMember(Order = 1)]
    public string open_password { get; set; }
    [DataMember(Order = 2)]
    public DateTime accessible_after { get; set; }
    [DataMember(Order = 3)]
    public DateTime accessible_before { get; set; }
    [DataMember(Order = 4)]
    public string certify_level { get; set; }
}

クラスのインスタンスを作成して XML にシリアル化する必要がありますが、その方法がわかりません。

クラスのインスタンスを作成できますが、List<T>プロパティに関しては作成できません。私はすでにこれを試しました:

if (typeof(IEnumerable).IsAssignableFrom(item.PropertyType))
    IList list = (IList)Activator.CreateInstance(typeof(List<>));

...そして、私が使用しているシリアル化するには:

XmlSerializer mySerializer = new XmlSerializer(typeof(T), new
    XmlRootAttribute(RootElementName));       
StringWriter sww = new StringWriter();
XmlWriter writer = XmlWriter.Create(sww, new XmlWriterSettings()
    { OmitXmlDeclaration = true, Indent = true });
mySerializer.Serialize(writer, item);
writer.Close();
sww.Close();

問題は、すべてのプロパティをループListして、 のインスタンスを作成する方法がわからないに到達したときですList。それは可能ですか、それとも何か間違っていますか?

4

1 に答える 1