Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自托管Owin Web API 2应用程序:如何使用参数启动Web应用程序_C#_Asp.net Web Api2_Owin_Self Hosting - Fatal编程技术网

C# 自托管Owin Web API 2应用程序:如何使用参数启动Web应用程序

C# 自托管Owin Web API 2应用程序:如何使用参数启动Web应用程序,c#,asp.net-web-api2,owin,self-hosting,C#,Asp.net Web Api2,Owin,Self Hosting,我正在尝试使用Web API 2中的自托管Owin将REST API添加到控制台应用程序中 // Starting the REST API string baseAddress = "http://localhost:8000/"; WebApp.Start<WebApi.WebApiStartup>(url: baseAddress); 在本例中,对象“位置”应在初始化时传递给web应用程序。有没有办法把它注入到那里?我不确定我是否正确理解了你的问题。您是否在询问如何在cons

我正在尝试使用Web API 2中的自托管
Owin将REST API添加到控制台应用程序中

// Starting the REST API
string baseAddress = "http://localhost:8000/";
WebApp.Start<WebApi.WebApiStartup>(url: baseAddress);

在本例中,对象“位置”应在初始化时传递给web应用程序。有没有办法把它注入到那里?

我不确定我是否正确理解了你的问题。您是否在询问如何在console应用程序中实例化一个对象并将该实例传递到webAPI?如果这就是你要问的,那么答案就是即使你能想出一个办法,也不要这样做。调用API获取所需的数据,然后在控制台应用程序中更新实例。你的API应该像它自己的实体一样工作,而不知道你的其他应用程序。在命令提示符下通过命令行传递它,然后从
Main
函数中的
args[]
获取它。@StephenBrickner是的,你理解正确。问题是API将继续以我的方式传输数据,控制台应用程序和webapp都应该能够始终访问API单例。所以你建议我在web应用程序中实例化singleton,然后将其传递给控制台应用程序?@LexLi Stephen理解正确。我需要通过web应用程序(公开RESTAPI)和控制台应用程序(公开套接字接口)同时访问单例。你能详细说明你的解决方案吗?我不确定你想做的事情是否有效。一旦您向api发出请求,您就没有一个在流传输期间保持打开状态的开放连接。WebAPI基本上是一个请求/响应消息泵。如果您对webAPI进行调用,并且它开始流式处理,那么您的请求可能会在完成之前超时。我会让你的web应用程序调用API,用一个异步方法获取你的数据,这样一旦完成它就会返回数据。API不需要知道为什么要获取数据,也不需要知道谁/什么人需要数据,它只需要得到一个请求,将数据提供给需要数据的人。我不确定我是否正确理解了您的问题。您是否在询问如何在console应用程序中实例化一个对象并将该实例传递到webAPI?如果这就是你要问的,那么答案就是即使你能想出一个办法,也不要这样做。调用API获取所需的数据,然后在控制台应用程序中更新实例。你的API应该像它自己的实体一样工作,而不知道你的其他应用程序。在命令提示符下通过命令行传递它,然后从
Main
函数中的
args[]
获取它。@StephenBrickner是的,你理解正确。问题是API将继续以我的方式传输数据,控制台应用程序和webapp都应该能够始终访问API单例。所以你建议我在web应用程序中实例化singleton,然后将其传递给控制台应用程序?@LexLi Stephen理解正确。我需要通过web应用程序(公开RESTAPI)和控制台应用程序(公开套接字接口)同时访问单例。你能详细说明你的解决方案吗?我不确定你想做的事情是否有效。一旦您向api发出请求,您就没有一个在流传输期间保持打开状态的开放连接。WebAPI基本上是一个请求/响应消息泵。如果您对webAPI进行调用,并且它开始流式处理,那么您的请求可能会在完成之前超时。我会让你的web应用程序调用API,用一个异步方法获取你的数据,这样一旦完成它就会返回数据。API不需要知道为什么要获取数据,也不需要知道谁/什么人需要数据,它只需要得到一个请求,将该数据提供给需要它的人。
var container = new UnityContainer();
container.RegisterInstance<AggregatePosition>(position);
HttpConfiguration config = new HttpConfiguration();
config.DependencyResolver = new UnityResolver(container);
config.Routes.MapHttpRoute(name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
appBuilder.UseWebApi(config);