C# 如何以与简单值类型(Guid、System.Int32)类似的方式序列化结构

C# 如何以与简单值类型(Guid、System.Int32)类似的方式序列化结构,c#,serialization,C#,Serialization,我有简单的类型struct。它可以隐式转换为众所周知的简单类型,如int或byte Mystruct没有属性,因此用法如下 int i = 1; MyStruct a = i; 或 MyStruct a = MyStruct.Empty; int i = (i)a; 代码正在运行。但是,我在序列化方面有问题:我想用与System相同的方式序列化我的struct。Int32或Guid是 ToString()工作正常,而且在调试器中一切正常。结构标记为可序列化 新编辑: 序列化的问题是-

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

My
struct
没有属性,因此用法如下

int i = 1;    
MyStruct a = i;

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

代码正在运行。但是,我在序列化方面有问题:我想用与
System相同的方式序列化我的
struct
。Int32
Guid

ToString()
工作正常,而且在调试器中一切正常。结构标记为
可序列化

新编辑:

序列化的问题是-my
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:“

当我向结构添加属性(例如值)时,它会序列化为: 答:[价值:“我的价值”]


我希望避免使用此值部分。

“我在序列化方面有问题”-那么要给我们一个线索吗?出了什么问题?这是否为您编译
MyStruct a=int i?是的,它正在编译,因为我的结构中有隐式运算符,但实际上不是正确的代码
inti;MyStruct a=i?啊,是的,我的错误,修正了我的问题