Re: Фабрика классов работающая по атрибуту класса
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.09.17 16:39
Оценка: +1
Здравствуйте, CyberRussia, Вы писали:

CR>Озвучили мне идею — написать классам атрибут с характерным уникальным значением. А фабрика, чтобы получить входным параметром значение искала класс с соответствующим атрибутом и создавала экземпляр объекта.

CR>Не могу найти решение как реализовать. Смотрел на Type.GetType, но там поиск по имени, а не по атрибуту. Циклически перебирать подходящие классы... наверное можно, но возможно существует лучшее решение?

Мы похожую задачу решили так. Сделали атрибут уровня сборки в котором в качестве параметра typeof(класс_который_надо_создать).

Преимущества — скорость загрузки. Читаются только метаданных глобальных атрибутов. Это очень быстро.

Например, вот такой атрибут:
[assembly: ProjectSupport("Nitra C#", typeof(CSharp.CompilationUnit))]

экспортирует объект поддержки проекта для некоторого языка реализуемого на Nitra
Автор: VladD2
Дата: 12.01.17
.

Сам атрибут.

А это код загрузки атрибутов.
А вот, код создания экземпляра.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 08.09.2017 16:47 VladD2 . Предыдущая версия . Еще …
Отредактировано 08.09.2017 16:41 VladD2 . Предыдущая версия .
Отредактировано 08.09.2017 16:41 VladD2 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.