Что такое объекты Vanilla в .NET? - PullRequest
6 голосов
/ 07 ноября 2010

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

Существует несколько причин для использования контейнеров при разработке приложений. Контейнеры предоставляют возможность обернуть ванильные объекты множеством других услуг. Это позволяет объектам оставаться в неведении относительно определенной инфраструктуры и деталей подключения, таких как транзакционность и безопасность на основе ролей. Зачастую клиентскому коду не нужно знать о контейнере, поэтому реальной зависимости от самого контейнера нет.

Эти службы могут быть настроены декларативно, то есть они могут быть настроены с помощью некоторых внешних средств, включая GUI, XML-файлы, файлы свойств, или ванильные атрибуты на основе .NET .

Я понимаю, что «ваниль» обычно относится к чему-то простому, но я не совсем понимаю значение здесь.

На что ваниль ссылается в .NET?

Ответы [ 2 ]

11 голосов
/ 07 ноября 2010

В некотором контексте вопрос станет намного понятнее, но обычно он используется для обозначения обычного объекта (или типа) без «специальных полномочий».Например, если схема сериализации претендует на работу с «ванильными объектами», вам не нужно украшать ее дополнительными атрибутами и т. Д., Чтобы сериализовать ее.Точно так же, если ORM работает с ванильными типами, ему не нужно реализовывать определенный интерфейс или что-то в этом роде.

РЕДАКТИРОВАТЬ: Хорошо, увидев контекст, вышеприведенное кажется правильным.

Еще один способ думать об этом заключается в том, что вы можете написать тип, который затем может быть использован фреймворком , а тип не знает о фреймворке .Таким образом, некоторые структуры DI требуют, чтобы вы сами декорировали типы, чтобы разрешить внедрение, в то время как другие этого не делают.Последние фреймворки способны работать с «ванильными» типами.

1 голос
/ 07 ноября 2010

На самом деле не знаю ... но по смыслу я бы предположил, что это может быть экземпляр класса, у которого просто есть конструктор, и где вы можете читать / писать члены без других методов. Часто этот класс полезен, поэтому кто-то может найти для него название. Например (в C ++) рассмотрим

struct P2d
{
    double x, y;
    P2d(double x, double y) : x(x), y(y) {}
};
...