0

我有简单的类型struct。这可以隐式转换为众所周知的简单类型,例如intor byte

struct的没有属性,所以用法就像

int i = 1;    
MyStruct a = i;

或者

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

代码正在工作。但是我有序列化问题:我想以同样的方式序列化struct我。System.Int32Guid

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"]

我想避免这个价值部分。

4

0 回答 0