Пожалуйста, помогите мне, добавляя в DisplayAttribute для Собствености Я попытался, но получает ошибку consturtor утратившегоДобавить DisplayAttribute через TypeBuilder
var fieldName = string.Format("Prop{0}", fieldName);
FieldBuilder fieldBuilder = segmentBuilder.DefineField(fieldName, typeof(string), FieldAttributes.Private);
PropertyBuilder propertyBuilder = segmentBuilder.DefineProperty(fieldName, PropertyAttributes.HasDefault, typeof(string), null);
MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig;
MethodBuilder getPropertyMethodBuilder = segmentBuilder.DefineMethod("get_" + fieldName, getSetAttr, typeof(string), Type.EmptyTypes);
ILGenerator ilSetGenerator = getPropertyMethodBuilder.GetILGenerator();
ilSetGenerator.Emit(OpCodes.Ldarg_0);
ilSetGenerator.Emit(OpCodes.Ldfld, fieldBuilder);
ilSetGenerator.Emit(OpCodes.Ret);
MethodBuilder setPropertyMethodBuilder = segmentBuilder.DefineMethod("set_" + fieldName, getSetAttr, null, new Type[] { typeof(string) });
ILGenerator ilGetGenerator = setPropertyMethodBuilder.GetILGenerator();
ilGetGenerator.Emit(OpCodes.Ldarg_0);
ilGetGenerator.Emit(OpCodes.Ldarg_1);
ilGetGenerator.Emit(OpCodes.Stfld, fieldBuilder);
ilGetGenerator.Emit(OpCodes.Ret);
propertyBuilder.SetGetMethod(getPropertyMethodBuilder);
propertyBuilder.SetSetMethod(setPropertyMethodBuilder);
На самом деле я ожидал класс как ниже с атрибутами на имуществе
public class ModelClass
{
[Display(Name = "Propery Name A")]
public string ProperyA { get; set; }
[Display(Name = "Propery Name B")]
public string ProperyB { get; set; }
}
Спасибо вам его работать @Antonio – Shiljo
Конечно, если вы не возражаете, и если у вас есть ответ можете ли вы сказать мне, как добавить в него атрибут Order. Атрибут отображения имеет другие дополнительные параметры, такие как порядок, имя. Имя, которое вы мне показывали – Shiljo
см. Мой обновленный ответ –