Вопрос:

Запретить определенным классам вызывать определенные методы, используя атрибуты

c# .net attributes

58 просмотра

1 ответ

987 Репутация автора

Я планирую дать привилегии вызова метода определенным классам в моей программе, используя атрибуты, но я просто не знаю, как это сделать.

Например, вот как я хочу, чтобы мой Customerкласс выглядел так:

[ForbiddenMethodsAttr(listOfMyForbiddenMethods)]
public class Customer
{
    public Customer { }
}

И если я хочу вызвать данную функцию, intellisense должен согреть меня, что я не могу. Причина, по которой я хочу это сделать, заключается в том, что вызов этих функций может вызвать некоторые проблемы, а не я единственный, кто будет кодировать этот проект но некоторые друзья тоже. Итак, если можно написать такой атрибут, как это сделать?

Автор: agiro Источник Размещён: 11.04.2017 05:09

Ответы (1)


1 плюс

1245 Репутация автора

Решение

Вы можете пометить методы как устаревшие, и тогда любой, кто их вызывает, получит предупреждение компилятора (хотя и не об ошибке). Это не элегантно, но ни одна из них не пытается ограничить вызовы методов без использования соглашений об ограничениях.

Автор: wllmsaccnt Размещён: 11.04.2017 05:19
32x32