2012-03-15 4 views
-1

concat 문자열 데이터 용 구조체가 있습니다.구조체를 문자열로 마샬링

public struct MyClass1 
    { 

     [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 5)] 
     public string Name; 

     [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 5)] 
     public string SurName; 
    } 

값 필드를 설정했습니다.

MyStruct mystr = new MyStruct(); 

mystr.Name = 'John'; 
mystr.SurName = 'Smith'; 

나는 마샬링을 사용하여이 문자열을 CONCAT 및

"존 스미스"

로 값을 얻을 싶어요. 마샬링을 사용할 수 있습니까?

+2

문자열을 연결하려면 '+'연산자를 사용하십시오. 마샬링은 관련이 없습니다. –

+1

누군가가 항상 나를 놀라게 할 수 있습니다. – Steve

+1

'Smith \ 0'은 이미'char [5]'에 비해 너무 길다. –

답변

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; 
} 
관련 문제