【问题标题】:Passing parameters to OData service initialization将参数传递给 OData 服务初始化
【发布时间】:2020-11-09 15:43:53
【问题描述】:

我得到了一个使用 .NET 核心实现的 OData 服务,它在 startup.cs 文件的初始化中有这一部分:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
  ...
  try
  {
     app.UseMvc(routeBuilder =>
     {
        ...
        routeBuilder.MapODataServiceRoute(
                        routeName: "name",
                        routePrefix: ModelConstants.RoutePrefix,
                        configureAction: containerBuilder =>
                        {
                            ...                
                           containerBuilder.AddService<IODataQueryProcessor>(ServiceLifetime.Singleton, typeof(DefaultODataQueryProcessor));
                        ...
     }

如何将这里的参数传递给DefaultODataQueryProcessor,它有一个带参数的构造函数?

【问题讨论】:

    标签: asp.net asp.net-core dependency-injection odata


    【解决方案1】:

    根据您的描述,我建议您可以尝试以下代码:

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
    
                routes.MapODataServiceRoute(
                         routeName: "name",
                         routePrefix :"aaa",
                          configureAction: containerBuilder => {
                              containerBuilder.AddService<IODataQueryProcessor>(Microsoft.OData.ServiceLifetime.Singleton, serviceProvider => {
                                  return new DefaultODataQueryProcessor("someString");
                              } );
                          }
    
                     );
    
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多