次のシナリオがあり、解決策が見つかりません。
ツールを使用して生成された複数のデータ コントラクト プロキシがありsvcutil.exe
ます。object[]
データ コントラクト プロキシ インスタンスを含むインスタンスをシリアル化しようとしています。以下を試しました:
public static string Serialize<T>(T obj)
{
StringBuilder sb = new StringBuilder();
var known = new List<Type>(){typeof(myDataContracClass), typeof(object[])};
DataContractSerializer ser = new DataContractSerializer(typeof(T), known );
ser.WriteObject(XmlWriter.Create(sb), obj);
return sb.ToString();
}
そして、それを次のように使用します。
object[] arrayToSerialize = new object[] { someGuid, myDatacontractProxyInstance};
var serialized = Serialize(arrayToSerialize);
編集:(私のセットアップをさらに説明するために)
次のデータ コントラクト属性を配置しました。
[DataContract(Namespace = "http://mynamespace-uri")]
svcutil.exe のプロキシ生成で、名前空間を宣言しまし/n:*,My.Custom.Namespace
た。これにより、生成されたプロキシがデータ コントラクト クラスとは異なる名前空間を持つようになります。
オフトピック: なぜ Microsoft は非常に難しいシリアライゼーション コンポーネントに行き着いたのですか?