C# 当我将控制器放入另一个项目OData.Net Core时,它不工作

C# 当我将控制器放入另一个项目OData.Net Core时,它不工作,c#,asp.net-core,.net-core,controller,odata,C#,Asp.net Core,.net Core,Controller,Odata,我有两个项目:OData(ASP.Net核心API)和Console(.Net核心)。我将ASP.Net核心项目作为引用添加到控制台,并从控制台启动服务。我在控制台项目中创建了一个控制器类,但它不起作用。以下是我的项目结构: 我正在SimpleServer中启动OData服务: namespace SimpleServer { class Program { static void Main(string[] args) {

我有两个项目:OData(ASP.Net核心API)和Console(.Net核心)。我将ASP.Net核心项目作为引用添加到控制台,并从控制台启动服务。我在控制台项目中创建了一个控制器类,但它不起作用。以下是我的项目结构:

我正在SimpleServer中启动OData服务:

namespace SimpleServer
{
    class Program
    {
        static void Main(string[] args)
        {
            var url = "https://localhost:44383";
            var actionBuilder = Configuration.GetBuilder();
            StartHost(url, actionBuilder);
        }

        internal static IHost StartHost(string url, Action<IApplicationBuilder> action)
        {
            var host = Host.CreateDefaultBuilder().ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseContentRoot(Directory.GetCurrentDirectory());
                webBuilder.UseIISIntegration();
                webBuilder.UseStartup<Startup>();
                webBuilder.UseHttpSys(op => op.UrlPrefixes.Add(url));
                webBuilder.Configure(action);
            }).Build();
            host.Start();
            return host;
        }
    }
}

下面的解决方案解决了此问题: 我制作了一个控制器项目作为类库,并添加了以下代码:

    var modelAssembly = Assembly.LoadFrom(@"C:\Users\Owner\source\repos\ODataCoreTest\ClassLibrary2\bin\Debug\netcoreapp3.1\ClassLibrary2.dll");
        services.AddControllers(mvcOptions =>
             mvcOptions.EnableEndpointRouting = false).PartManager.ApplicationParts.Add(new AssemblyPart(modelAssembly));

现在它工作正常了

你在使用多个启动项目吗?@Shivendra我不明白你的意思。我将oData项目作为一个类库,从几个方面开始,从项目图标上看,您的oData项目显然不是一个类库。这意味着AspNetCore applicationhost。它的目的是什么?@DIlshodK我相信示例服务器是作为类库创建的&oData项目是作为Web项目创建的。但是,这并不重要,如果希望运行示例服务器项目,则应该右键单击它并将其设置为启动项目。
    var modelAssembly = Assembly.LoadFrom(@"C:\Users\Owner\source\repos\ODataCoreTest\ClassLibrary2\bin\Debug\netcoreapp3.1\ClassLibrary2.dll");
        services.AddControllers(mvcOptions =>
             mvcOptions.EnableEndpointRouting = false).PartManager.ApplicationParts.Add(new AssemblyPart(modelAssembly));