При попытке узнать Unity, я продолжаю видеть следующий код для переопределения GetControllerInstance в MVC:
if(!typeof(IController).IsAssignableFrom(controllerType)) { ... }
это кажется мне довольно запутанным способом писать в основном
if(controllerType is IController) { ... }
Я понимаю, что существуют тонкие различия между is и IsAssignableFrom, т.е. IsAssignableFrom не включает преобразования преобразования, но я изо всех сил стараюсь понять последствия этой разницы в практических сценариях.
Когда это целесообразно выбрать IsAssignableFrom над is? Какая разница в GetControllerExample?
if (!typeof(IController).IsAssignableFrom(controllerType))
throw new ArgumentException(...);
return _container.Resolve(controllerType) as IController;