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
Mystruct
没有属性,因此用法如下
int i = 1;
MyStruct a = i;
或
MyStruct a = MyStruct.Empty;
int i = (i)a;
代码正在运行。但是,我在序列化方面有问题:我想用与
System相同的方式序列化我的struct
。Int32
或Guid
是
ToString()
工作正常,而且在调试器中一切正常。结构标记为可序列化
新编辑:
序列化的问题是-mystruct
没有序列化。在序列化文本(例如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代码>?啊,是的,我的错误,修正了我的问题