Я думал, что использование моего собственного IoC будет довольно прямолинейным с SignalR, и, возможно, это так; скорее всего, я делаю что-то не так. Вот мой код, который я до сих пор:
private static void InitializeContainer(Container container)
{
container.Register, MongoHelper>();
// ... registrations like about and then:
var resolver = new SimpleInjectorResolver(container);
GlobalHost.DependencyResolver = resolver;
}
, а затем мой класс:
public class SimpleInjectorResolver : DefaultDependencyResolver
{
private Container _container;
public SimpleInjectorResolver(Container container)
{
_container = container;
}
public override object GetService(Type serviceType)
{
return _container.GetInstance(serviceType) ?? base.GetService(serviceType);
}
public override IEnumerable
В итоге я получаю сообщение об ошибке, что IJavaScriptProxyGenerator не может быть разрешен, поэтому я думаю, что я добавлю регистрацию:
container.Register(
ConstructorSelector.MostParameters);
, но тогда там Я добираюсь до:
container.Register();
container.Register();
container.Register(
ConstructorSelector.MostParameters);
container.Register();
container.Register();
container.Register();
container.Register(ConstructorSelector.MostParameters);
Который все еще дает мне «Не удалось найти регистрацию для типа ITraceManager
». ... но теперь мне интересно, правильно ли я это делаю вообще, как я надеюсь, мне не нужно будет переделывать все, что делает SignalR ... верно? Надеюсь? Если нет, я буду продолжать тащиться, но я новичок в SignalR и Simple Injector, поэтому подумал, что сначала спрошу . :)
Дополнительно: https://cuttingedge.it/blogs/steven/pivot/entry.php?id=88, поскольку у SignalR было несколько конструкторов.