문제

속성의 복잡성에 대한 장점을 찾으려고 노력합니다. 모든 도움이 감사하겠습니다.

이 시점에서, 나는 런타임 동안 속성 생성자가 실행되는 시간을 알고 싶습니까?

  • 수업이 끝났다면
  • 재산을 초월한 경우
  • 방법이 끝나면

감사.

도움이 되었습니까?

해결책

생성자는 유형 또는 memberInfo에서 getCustomAttributes ()를 호출 할 때 호출됩니다.

다른 팁

표준 (C# 2.0 버전의 17.3.2)을 읽는 것은 지정되지 않았습니다. Metatada에서 인스턴스로 변환하는 방법 만 있습니다.

따라서 지정되지 않은 경우 다르게 해석해야하기 때문에 다른 구현을 테스트해야 할 수도 있습니다.

당신이 확신 할 수있는 유일한 것은 이전에 호출 될 것이라는 것입니다. 생성자가 호출되는 정확한 시간은 정의되지 않습니다.

어쨌든, 동작은 무시되지 않으므로, 현재 구현에 의해 생성자가 호출 될 때마다 의존해서는 안됩니다.

속성은 메타 데이터 또는 유형에 대한 정보를 저장하는 장식입니다. .NET Framework는 이러한 종류의 정보를 사용하여 인스턴스를 생성 할 때 추가 처리를 수행합니다.

이 속성은 다른 클래스에서 요청할 때만 구성되며, 예를 들어 getCustomAttributes ()와 함께. 따라서 자신의 속성을 만들고 사용자 정의 속성을 요청할 수 있습니다.

public class MyOwnAttribute: Attribute {}

/ * 다른 클래스의 어느 시점에서 */

void CheckIfClassIsDecoratedWithMyOwnAttribute()
{
    var instance = new MyClass();
    if (instance.GetType().GetCustomAttributes(typeof(MyOwnAttribute)))
    {
       //do whatever you want
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top