私はかなり新しいMVC開発者です。私はXMLにシリアル化するのに少し問題があります。ナビゲーションのプロパティを使用したXMLシリアル化
は、私は現在、以下のクラスがあります。
public void ExportToXML()
{
var data = mydb.User.ToList();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=testXML.xml");
Response.ContentType = "text/xml";
var serializer = new System.Xml.Serialization.XmlSerializer(data.GetType());
serializer.Serialize(Response.OutputStream, data);
}
をし、問題が来る:
public class UserClass
{
public int UserId{ get; set; }
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public bool LogicalDelete { get; set; }
public virtual ICollection<Phone> Phone{ get; set; }
[XmlIgnore]
public virtual ICollection<EventList> Event{ get; set; }
}
public class Phone
{
public int TelefonosId { get; set; }
public string Phone{ get; set; }
public bool Mobile{ get; set; }
public int UsuarioId { get; set; }
public virtual UserClass User { get; set; }
}
UserControllerでから呼び出すシリアライザ方法 - 私は次のようです。私がシリアル化しようとすると、Userクラスのナビゲーションプロパティは "GetType"呼び出しで反射型のエラーを返します。それは彼らなしでうまく動作します(私は電話なしでユーザーリストを正しくエクスポートできました)。
私には何が欠けていますか?私はもっとうまくいくものがありますか?
ありがとうございます!
は、あなたが例外を取得していると仮定すると、あなたは、例外の種類、メッセージを含む例外の完全な 'のToString()'出力を共有することができますトレースバックと内部例外? – dbc
あなたが取得しようとしているエラーは 'System.Collections.Generic.ICollectionタイプのメンバーUserClass.Phoneをシリアル化できません1 [[Phone]]はインターフェースなので?それは私がここで[mcve]を作成しようとしたときに表示されるエラーです:https://dotnetfiddle.net/NF9BpZ – dbc
はい、まさにエラーImを得ることです –