をマークされていない「エンティティ」は、私はクラスを持っているとして、直列化エラー
[Serializable]
public class Entity
{
public Guid Id { get; set; }
public IEnumerable<Entity> ChildEntity { get; set; }
}
私はそれが同じクラスのエンティティのリストであるプロパティChildEntityを持っていることに気づくでしょう。
質問1。このリストを明示的にシリアル化する必要がありますか?クラスのSerializable属性は、私のためにその作業を行います。
このクラスをバイナリシリアライザを使用してシリアライズしようとすると、このクラスがシリアライザブルとしてマークされていないという例外が発生します。
childEntitiesをシリアル化しようとすると例外が発生すると思います。
ここに私のシリアライズコードがあります。
public static T DeepClone<T>(T obj)
{
using (var ms = new MemoryStream())
{
var formatter = new BinaryFormatter();
try
{
formatter.Serialize(ms, obj);
}
catch (Exception Ex)
{
//TODO
}
}
}
また、エンティティクラスのリストが作成されているクラスもあります。
[Serializable]
public class AllEntity
{
public Guid ParentId {get; set; }
public Guid Id {get; set;} //childId
public string Desc {get; set;}
}
親子関係に基づいてEntityクラスのリストを作成するために再帰を実行しています。
public IEnumerable<Entity> Build(IEnumerable<AllEntity> allentity)
{
//recursivey builds List if Entity class
}
例外メッセージ:
タイプ 「System.LINQ.Enumerable + WhereSelectListIterator`2 [[Common.Models.AllEntity、 共通、バージョン= 1.0.0.0、文化=中立、トークン= null]、アセンブリでSystem.Core、Version = 4.0.0.0、 Culture =ニュートラル、 [Common.Models.Entity、Common、Version = 1.0.0.0、Culture =ニュートラル、 トークン= null] Token = null 'はSerializableとしてマークされていません
メッセージ、ソース、例外タイプ、内部例外を含む例外の完全な 'ToString()'出力は何ですか?完全な例外メッセージで詳細を説明する必要があります。 – dbc
それは意味がありますか? –
完全なコードを掲載してください。 –