相关疑难解决方法(0)

在C#中使用IsAssignableFrom和"is"关键字

在尝试学习Unity时,我一直看到以下代码覆盖GetControllerInstanceMVC:

if(!typeof(IController).IsAssignableFrom(controllerType)) { ... }
Run Code Online (Sandbox Code Playgroud)

在我看来,这基本上是一种非常复杂的写作方式

if(controllerType is IController) { ... }
Run Code Online (Sandbox Code Playgroud)

我理解,存在之间的细微差别isIsAssignableFrom,即IsAssignableFrom不包括投转换,但我在努力了解实际情况下这种差别的含义.

什么时候选择IsAssignableFrom结束有意义is?它会有什么不同GetControllerExample

if (!typeof(IController).IsAssignableFrom(controllerType))
      throw new ArgumentException(...);
return _container.Resolve(controllerType) as IController;
Run Code Online (Sandbox Code Playgroud)

c# reflection asp.net-mvc casting unity-container

51
推荐指数
4
解决办法
1万
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

casting ×1

reflection ×1

unity-container ×1