我有简单的类型struct
。这可以隐式转换为众所周知的简单类型,例如int
or 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: ""
当我将属性添加到我的结构中时,例如 Value - 然后它序列化为: A: [Value: "myvalue"]
我想避免这个价值部分。