1

C#XmlSerializerを使用して、いくつかの異なるエンティティに対してジェネリック型をシリアル化できるようにしたいと思います。たとえば、私はシリアル化したい:

GenericThing<MyApp.A> and GenericThing<MyApp.B>

私が次のようなものを手に入れるまで、これはすべてうまくいきます:

GenericThing<MyApp.A.Entity> and GenericThing<MyApp.B.Entity>

これらの2つのクラスは同じ名前であるため、シリアライザーは2つのエンティティを区別できず、両方をにシリアル化しようとしGenericThingOfEnitityます。

シリアル化中の一般的な引数についてより具体的になるように装飾する方法はありますかGenericThing(つまり、シリアル化GenericThingOfMyApp.B.Enitityまたは類似)?残念ながら、私はどちらかを制御することはできませMyApp.AMyApp.B

4

1 に答える 1

0

さまざまなXML名前空間を指定できます。例:

var entityA = new GenericThing<MyApp.Entity>();
var entityB = new GenericThing<MyAppB.Entity>();
var serializer1 = new XmlSerializer(entityA.GetType(), "aaa");
var serializer2 = new XmlSerializer(entityB.GetType(), "bbb");
于 2012-11-07T03:15:36.703 に答える