我有简单类型struct
。这对于int
或byte
等众所周知的简单类型来说是可转换的。
我的struct
没有属性,因此用法就像
int i = 1;
MyStruct a = i;
或
MyStruct a = MyStruct.Empty;
int i = (i)a;
代码正在运行。但是我在序列化方面遇到问题:我希望以与struct
或System.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部分。