DataContractSerializeでオブジェクトをシリアル化する方法がわかりません。これが私のコードです:
public static string DataContractSerialize(object target)
{
var formatter = new DataContractSerializer(target.GetType());
using (var stream = new MemoryStream())
{
formatter.WriteObject(stream, target);
stream.Position = 0;
return Encoding.UTF8.GetString(stream.ToArray());
}
}
およびエンティティ
[Serializable, DataContract(Namespace = "CommunicationModel.Entity")]
[KnownType(typeof(Message))]
[KnownType(typeof(int))]
[KnownType(typeof(string))]
[KnownType(typeof(Type))]
[KnownType(typeof(object))]
public class Message : IDisposable
{
public Message(string stringInfo)
{
MessageValue = stringInfo;
MessageType = typeof (string);
}
public Message(int intInfo)
{
MessageValue = intInfo;
MessageType = typeof (int);
}
[DataMember]
public Type MessageType { get; private set; }
[DataMember]
public object MessageValue { get; private set; }
#region Implementation of IDisposable
public void Dispose()
{
}
#endregion
}
次のようにDataContractSerializeを実行すると、次のようになります。
var sData = SerializerHelper.DataContractSerialize(msg);
例外がスローされます。私に何ができる?