0
구조체의 필드에 대해 필드 정보가 반영된 방법을 찾으려고합니다. 내 구조체는 종종 고정 너비 바이트 배열을 포함합니다. 구조체 필드 목록을 반복하면서 이러한 배열 중 하나가 발생하면 필드가 배열이고 다른 필드 형식과 다르게 배열을 처리해야합니다. 어떻게해야합니까?구조체에 고정 너비 byte [] 필드 정보를 반영하려면 어떻게해야합니까?
예를 들어, 여기에 예제 구조체 및 다음 메서드를 내 문제를 분명히?
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public unsafe struct MyStruct
{
public int IntegerVal;
public unsafe fixed byte MyByteBuff[20];
}
//Later in code...
public static void WorkWithStructs(Type t) //t will always be a struct
{
foreach (var f in t.GetFields())
{
if (f.FieldType == typeof(int)
{
//Do Int work
}
else if (???) //Test for a fixed-width byte array
{
// If MyStruct were passed to this method, this is where I
// would need to handle the MyByteBuff field. Specifically,
// I need to discern the object type (in this case a byte)
// as well as the length in bytes.
}
}
}
이러한 고정 된 필드를 리플렉션을 통해 일반적인 방법으로 처리 할 수 없다면 너무 놀랍지 않을 것입니다. 어쨌든 가장 좋은 방법은 응용 프로그램을 디버그하고 디버거에서'f'와 그 속성을 살펴 보는 것입니다. –
있습니다. 나는 아마도 그러한 분야 일 가능성이있는 분별있는 것에 가까워 질 수 있지만 필요한 모든 정보를 찾을 수는 없습니다. 나는이 요구 사항보다 훨씬 전에 반사를 사용하지 않았다. 바라건대 '전문가'가 도와 줄 수 있기를 바랍니다. – RLH