пользовательские атрибуты метода условия в C # - PullRequest
0 голосов
/ 15 октября 2010

Мне интересно, могу ли я сделать что-то подобное в c #:

    public CustomerManagerScreen() 
    {
        [TestAttirubute("CustomerManagerScreen_Load")]
            private void CustomerManagerScreen_Load(object sender, EventArgs e)
            {
                CustomerLoad();
            }
    }

Как видите, имя метода является параметром TestAttribute, и я хочу, чтобы CustomerManagerScreen_Load был отброшен в зависимости от результата TestAttirubute

это класс атрибута ...

public class TestAttirubute: System.Attribute
    {
        private string _MethodName = string.Empty;

        public TestAttirubute(string MethodName)
        {
            this._MethodName = MethodName;
        }

        public bool hasPermission()
        {
            return (SessionManager.CurrentUser.UserRole.Role.Rights.Where(a => a.Resource.Code == this._MethodName).Count() != 0) ? true: false;
        }
    }

1 Ответ

0 голосов
/ 15 октября 2010

Не так, но с ConditionalAttribute вы можете.

Однако есть одно ограничение: ваши методы должны возвращать void.

...