如何以与简单值类型类似的方式序列化struct(Guid,System.Int32)

时间:2013-08-27 13:21:31

标签: c# serialization

我有简单类型struct。这对于intbyte等众所周知的简单类型来说是可转换的。

我的struct没有属性,因此用法就像

int i = 1;    
MyStruct a = i;

MyStruct a = MyStruct.Empty;
int i = (i)a;

代码正在运行。但是我在序列化方面遇到问题:我希望以与structSystem.Int32相同的方式序列化Guid

ToString()正在运行没有问题,也在调试器中一切正常。结构标记为Serializable

新编辑:

序列化的问题是 - 我的struct不是序列化。在序列化文本(例如JSON)中,它是空字符串。当我希望看到与ToString()

中返回的值相同的值时

对于序列化,我正在使用:

[DataContract]
public class MyClass
{
   [DataMember]
   public Guid Id { get; set;}

   [DataMember]
   public MyStruct A { get; set;}
}

var myclass = new MyClass() { Id = Guid.NewGuid(); A = MyStruct.MyNewStruct() }
string data = JsonConvert.SerializeObject(myClass);

Guid正在序列化 - Id:“... guid ......”, A不是 - A:“”

当我向我的结构添加属性时,例如价值 - 然后它序列化为: 答:[价值:“myvalue”]

我想避免使用此Value部分。

0 个答案:

没有答案