Хорошо, я хочу создать произвольные реализации определенного интерфейса и решить их. Это фактически похоже на плагиновую систему. "Создайте свою собственную реализацию интерфейса X, и приложение сделает все остальное"
public interface IMenuEntry { ... }
// auto-mapping (registration-by-convention)
_container.RegisterTypes(AllClasses.FromAssemblies(assemblies),
WithMappings.FromMatchingInterface,
// ResolveAll need names for multiple registrations of the same type (?)
WithName.TypeName,
WithLifetime.ContainerControlled);
var g = _container.ResolveAll<IMenuEntry>(); // empty - why?
Когда я проверяю регистрацию своих контейнеров, я выполняю свои функции, а имя - это имя класса, а не интерфейс. Замечательно. Но почему я не могу разрешить все реализации IMenuEntry
? Он всегда пуст.
Я смотрю этот пост, и это похоже на WithMappings.FromMatchingInterface
будет соответствовать типу MenuEntry
для IMenuEntry
.
WithMappings.FromAllInterfaces
этого вы можете попробовать WithMappings.FromAllInterfaces
.