설정 사용자 지정 특성 값에서 Enum C#

0

질문

저는 한 사용자 지정 특성을 아래와 같이

   [AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
    public class SetValForAll : Attribute
    {
        public string Limit { get; set; }

        public SetValForAll(string limit)
        {
            Limit = limit;
        }
    }

이를 사용하는 동안 특성(SetValForAll)고 싶은 값을 전달의 한계 를 사용하여 하나의 열거 하지만 그것은 오류를 보여주는'특성을 인수해야 될 일정한 표현,typeof 표현 또는 배열 생성 식이의 특성을 매개변수 유형'

내 Enum 은 아래와 같이

        public enum LimitEnum
        {
            max,
            min
        }

아래 코드는 오류를 던지는 특성에 라인입니다.

[SetValForAll(LimitEnum.max.ToString())]
public class UsingTheAttributeHere
{
}

할 수 있는 방법을 값에서 LimitEnum 사용하는 동안 SetValForAll 특성보다는 전달 하드 문자열?

.net attributes c# enums
2021-11-23 20:46:12
2

최고의 응답

0

사용할 수 있습니다 nameof 식 얻을 것이다 당신 enum 으로 일정한 문자열:

[SetValForAll(nameof(LimitEnum.max))]

(참고.)

2021-11-23 22:27:24

는 좋은 아이디어를 통과한 이름으로 일정한 문자열입니다.
R.Abbasi

감사@stenehr. 그것은 작동합니다. 가 표시 답변으로 받아들여
Abhishek
0

할 수 있고,통행이 일정하지 않 문자열에 특성 값입니다. 왜 당신이 사용하신 enum 유형을 대신 string 귀하의 재산에 대한? 당신이 사용할 수 있는 LimitEnum 을 전달에서 생성자입니다.

   [AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
    public class SetValForAll : Attribute
    {
    public LimitEnum Limit { get; set; }

    public SetValForAll(LimitEnum limit)
    {
        Limit = limit;
    }
    }

고 이를 다음과 같이 사용:

[SetValForAll(LimitEnum.max)]
2021-11-23 21:04:15

에 대한 당신의 대답이다. 이 될 수 있습니다 더 나은 옵션입니다. 귀하의 제안 주셔서 감사 합니다
Abhishek

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................