C# 将结构封送到字符串
我有一个concat字符串数据的结构C# 将结构封送到字符串,c#,C#,我有一个concat字符串数据的结构 public struct MyClass1 { [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 5)] public string Name; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 5)] public string SurName; } 我设置了struct字段的
public struct MyClass1
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 5)]
public string Name;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 5)]
public string SurName;
}
我设置了struct字段的值
MyStruct mystr = new MyStruct();
mystr.Name = 'John';
mystr.SurName = 'Smith';
我想使用封送处理来连接这个字符串,并将值作为
约翰·史密斯
。是否可以使用编组?使用反射而不是编组
var myClass = new MyClass1 { Name = "John", SurName = "Smith" };
Console.WriteLine(MyMarshal(myClass));
static string MyMarshal(object item)
{
var values = new List<object>();
foreach (var field in item.GetType().GetFields())
{
values.Add(field.GetValue(item));
}
return string.Join(" ", values.ToArray());
}
public struct MyClass1
{
public string Name;
public string SurName;
}
如果要连接字符串,请使用+运算符。封送处理是不相关的。总是有人试图让meSmith\0对于字符[5]来说已经太长。例如,使用Marshal.StructureToPtr。。我想要得到结果。我的目的是反序列化结构和concat值。