我有一个concat字符串数据的结构。
public struct MyClass1
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 5)]
public string Name;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 5)]
public string SurName;
}
我设置值struct fields。
MyStruct mystr = new MyStruct();
mystr.Name = 'John';
mystr.SurName = 'Smith';
我想通过使用Marshaling来连接此字符串,并将值作为
“约翰史密斯”
。是否可以使用编组?
答案 0 :(得分:0)
使用反射代替编组。
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;
}