Я пытаюсь построить динамический тип и установить его размер, например [StructLayout(LayoutKind.Sequential, Size=100)]
. У меня есть следующий код:TypeBuilder тип набора размер
Type structLayoutAttr = typeof(StructLayoutAttribute);
ConstructorInfo structLayoutAttrCtor = structLayoutAttr.GetConstructor(new[]{typeof(LayoutKind)});
object[] structLayoutAttrCtorArgs = new object[]{LayoutKind.Explicit};
FieldInfo[] structLayoutAttrSizeField = new FieldInfo[]{structLayoutAttr.GetField("Size")};
CustomAttributeBuilder cb = new CustomAttributeBuilder(structLayoutAttrCtor, structLayoutAttrCtorArgs, structLayoutAttrSizeField, new object[]{size});
tb.SetCustomAttribute(cb);
type = tb.CreateType();
Однако этот код не на последний шаг - CreateType
бросков TypeLoadException
о плохом формате. Есть ли способ применить атрибут?