내가하려는 것은 attributes
을 property
에서 다른 것으로 복사하는 것입니다. 여기 지금 내 코드입니다 :런타임에 생성자 매개 변수의 값을 얻는 방법이 있습니까
foreach (var prop in typeof(Example).GetProperties())
{
FieldBuilder field = typeBuilder.DefineField("_" + prop.Name, prop.PropertyType, FieldAttributes.Private);
PropertyBuilder propertyBuilder =
typeBuilder.DefineProperty(prop.Name,
PropertyAttributes.HasDefault,
prop.PropertyType,
null);
object[] attributes = prop.GetCustomAttributes(true);
foreach (var attr in attributes)
{
//Here I need to get value of constructor parameter passed in declaration of Example class
ConstructorInfo attributeConstructorInfo = attr.GetType().GetConstructor(new Type[]{});
CustomAttributeBuilder customAttributeBuilder = new CustomAttributeBuilder(attributeConstructorInfo,new Type[]{});
propertyBuilder.SetCustomAttribute(customAttributeBuilder);
}
}
그것은 있지만 매개 변수가 constructor
이 attributes
을 위해 일하고있다. 예 : "DataTypeAttribute"에는 constructors
과 parameter
만 있습니다. 이 때문에 지금은 copy
에만 RequiredAttribute
수 있어요 들어
public class Example
{
public virtual int Id { get; set; }
[Required]
[MaxLength(50)]
[DataType(DataType.Text)]
public virtual string Name { get; set; }
[MaxLength(500)]
public virtual string Desc { get; set; }
public virtual string StartDt { get; set; }
public Example()
{
}
}
:의 나는이 모델이 있다고 가정 해 봅시다 attribute
constructor
의 현재 값을 얻을 수있는 방법이 있는지
지금 궁금 매개 변수가없는constructor
. 나는
copy
DataTypeAttribute
수 없습니다. 그래서 내 예제 모델에서 이것을
value
DataType.Text
받고 싶습니다.
누구나 몇 가지 아이디어가 있습니까?
참고 : 매개 변수가없는 생성자 만있는 경우 GetCustomAttributeData()는 1을 반환합니다. AttributeData – harry180
@ harry180 반환 할 내용이 정확하지 않습니까? – svick
당신은 왜 매개 변수가없는'constructor'it의 이상한 경우에'AttributeTarget'을 반환해야하는지 설명 할 수 있습니까? 나는 그것이'null' 또는'array'를 비우겠다고 생각했습니다. – harry180