c# - 将 Web API Controller 添加到不同的程序集

标签 c# .net asp.net-mvc-4 asp.net-web-api

如何将 Web Api Controller 添加到不同的程序集中? 我想将 Web API Controller 与我的 MVC 应用程序分开。

最佳答案

WebApi 开箱即用。

DefaultAssembliesResolver 类是用于加载程序集以查找 ApiController 的类。这是源代码:

  public class DefaultAssembliesResolver : IAssembliesResolver {    
    public virtual ICollection<Assembly> GetAssemblies() {
      return AppDomain.CurrentDomain.GetAssemblies().ToList();
    }
  }

诀窍是在第一次调用 web.api 服务之前将程序集加载到 AppDomain。

调用目标程序集中类的任何方法或简单地从中加载一个类型。例如:

var x = typeof (YourApiControllerInAnotherAssembly);

如果您使用的是旧版本的 WebApi,请尝试实现 IAssembliesResolver 并像这样更改它的默认实现:

GlobalConfiguration.Configuration.Services.Replace(typeof(IAssembliesResolver), 
                                                   new YourCustomAssemblyResolver());

关于c# - 将 Web API Controller 添加到不同的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22969037/

相关文章:

.net - 在 WebRequest 中强制进行基本身份验证

c# - 为什么嵌套类是 "inherited"?

asp.net - RouteValueDictionary 忽略空值

javascript - 该参数未检索上传文件的值

c# - 一个文件中只允许有一条 'model'语句

c# - 在模型绑定(bind)期间在 asp.net mvc 中丢失我的字节数组的所有数据

c# - 有没有更好的方法来 self 引用类型?

c# - 如何加速 C# 数字代码

c# - 集成测试数据库,我做对了吗?

c# - RTF 邮件中的附件放置