프로젝트 구성 레벨에서 TRACE 변수를 정의 사용해보십시오 : 당신을 왜 아직 확실하지 않다 Can attributes be added dynamically in C#?
어셈블리 레벨 속성과 구성 키를 바인딩해야하지만 구성 키를 속성의 생성자/속성에 전달하고 속성 논리 내에서 값을 확인할 수 있습니다. 그것은 보이는 것 같은 :
[assembly: Trace("DoTracing")]
그리고 설정 파일 : 기존 속성을 사용하는 경우 다른 솔루션으로
<appSettings>
<add key="DoTracing" value="true"/>
</appSettings>
, 당신은 사용자 정의 할 수있는 어셈블리 정보에 다음
[AttributeUsage(AttributeTargets.Assembly)]
public class TraceAttribute : Attribute
{
public TraceAttribute(string traceConfigKey)
{
var keyValue = ConfigurationManager.AppSettings[traceConfigKey];
DoTracing = !string.IsNullOrEmpty(keyValue) && bool.Parse(keyValue);
}
/// <summary>
/// Use this property for your tracing conditional logic.
/// </summary>
public bool DoTracing { get; private set; }
}
프로젝트 속성에 조건부 컴파일 기호를 추가 한 다음 쓸 수도 있습니다.
#if TRACE
[assembly: Trace()]
#endif
하지만 프로젝트 재 컴파일이 필요합니다.
일부 구성 값을 기반으로 특성을 설정하려는 이유를 설명하십시오. 달성하려는 목표는 무엇입니까? –
목표가 포함되도록 내 질문을 업데이트했습니다. –