NUnit 테스트 클래스 라이브러리 어셈블리에서 모든 테스트 이름을 검색 할 수 있지만 Category
특성에 전달 된 매개 변수에서 해당 범주 이름도 검색해야합니다. 예를 들어특성 매개 변수 값 추출
는 :
[Category("text")]
public void test() {}
나는 DLL에서 "text"
을 얻을 필요가있다.
NUnit 테스트 클래스 라이브러리 어셈블리에서 모든 테스트 이름을 검색 할 수 있지만 Category
특성에 전달 된 매개 변수에서 해당 범주 이름도 검색해야합니다. 예를 들어특성 매개 변수 값 추출
는 :
[Category("text")]
public void test() {}
나는 DLL에서 "text"
을 얻을 필요가있다.
반사를 사용합니다. 예를 들어
:이 속성을 감안할 때
는 필드에 적용 :
<AttributeUsage(AttributeTargets.Field)> _
Public NotInheritable Class DataBaseValueAttribute
Inherits Attribute
Private _value As Object
Public Sub New(ByVal value As Object)
_value = value
End Sub
Public Function GetValue() As Object
Return _value
End Function
End Class
당신은 유형과 필드 정보를 얻기 위해 반사를 사용하여 속성을 얻을 수 있습니다 : C#에서
Dim tipo As Type = GetType(YourType)
Dim fi As FieldInfo = tipo.GetField("fieldName")
Dim attribs As Atributos.DataBaseValueAttribute() = CType(fi.GetCustomAttributes(GetType(Atributos.DataBaseValueAttribute), False), Atributos.DataBaseValueAttribute())
If attribs.Count > 0 Then
Return attribs(0).GetValue()
Else
Return Nothing
End If
을 :
[AttributeUsage(AttributeTargets.Field)]
public sealed class DataBaseValueAttribute : Attribute
{
private object _value;
public DataBaseValueAttribute(object value)
{
_value = value;
}
public object GetValue()
{
return _value;
}
}
Type tipo = typeof(YourType);
FieldInfo fi = tipo.GetField("fieldName");
Atributos.DataBaseValueAttribute[] attribs = (Atributos.DataBaseValueAttribute[])fi.GetCustomAttributes(typeof(Atributos.DataBaseValueAttribute), false);
if (attribs.Count > 0) {
return attribs(0).GetValue();
} else {
return null;
}
nswer가 맞습니다. 올바른 것으로 표시하십시오. 이렇게하면 다른 사람들이 솔루션을 더 빨리 찾을 수 있습니다. – jlvaquero