2013-07-29 5 views
1

Есть простой способ найти конкретные классы расположение сборки или имя при использованииОпределение местоположения бетона класса в Service Locator Pattern

Service Locator Pattern без запуска раствора, содержащего?

Работая в библиотеке значительного размера, трудно найти реализацию, которую возвращает Service Locator.

Есть ли простой способ найти типы, заданные интерфейсом или любыми другими средствами (C#)?

Например, каково место реализации, которое возвращается IOrder?

_iOrder = ServiceLocator.GetService<IOrder>(); 

Edit: Может ли это быть сделано за пределами раствора, содержащего, с помощью консольного приложения, например?

ответ

1
_iOrder = ServiceLocator.GetService<IOrder>(); 
string fullName = _iOrder.GetType().AssemblyQualifiedName; 
+0

Я хочу быть в состоянии сделать это, не запуская весь раствор. Как это можно сделать в консольном приложении, чтобы он мог запускаться независимо? – ojhawkins

+0

@ojhawkins Это просто: просто создайте консольный проект, добавьте нужные вам ссылки, приготовьте свой контейнер по мере необходимости, чтобы он содержал тип, который вы хотите изучить (поэтому ServiceLocator.GetService () не возвращает null), а затем запустите его консольный проект. – lightbricko

1

Это должно обеспечить требуемые детали:

var fullName = _iOrder.GetType().FullName 
Смежные вопросы