我一直在使用Autofac与ASP.NET Web API和ASP.NET MVC的集成。一切看起来都很好,除了我对注册为SingleInstance()的对象的生命周期以及更广泛的容器本身的生命周期有一些疑问。
例如,如果我按以下方式声明一个类:
public class Cache {
private Dictionary<int, int> _internalCache = new Dictionary<int, int>();
}
并将其注册为容器中的单个实例:
var builder = new ContainerBuilder();
我们有一个要更新的应用程序库,以便与ASP.NET核心和早期版本的ASP.NET一起使用。此库当前依赖于ConfigurationManager类从Web.config读取设置。随着ASP.NET核心配置的改变,有没有一种建议的方法来创建一个可以从ASP.NET核心web应用程序和之前的ASP.Net核心web应用程序中读取配置的库?
读取配置设置的当前逻辑示例。
using System.Configuration;
namespace Test.MyLibrary
{
public class MyLibrarySettings : ConfigurationSection
在以下情况下,当通过ASP.NET MVC调用方法时,我的viewModel参数永远不会为空吗?例如使用URL ".../Home/Index“。
public ViewResult Index(HomeViewModel viewModel)
{
// .. do stuff...viewModel is never null here when called within ASP.NET?
}
我以前从来没有注意到ASP.NET MVC中的这种行为,但是ViewModel (如果它没有被提供)似乎正在被实例化。
有没有人能澄清这种行为。
我正在尝试公开一个IQueryable<> over ASP.NET Web API,我发现我需要保持数据源打开,直到请求完成,这样ASP.NET Web API中内置的OData查询系统才能完成它的工作。
好的,这听起来非常合理。但是我该把数据源放在哪里呢?我没有看到任何明显的地方这样做。我应该在应用程序中管理请求状态吗?执行此操作的标准方法是什么?
控制器的Dispose()方法是合适的地方吗?也就是说,是否保证一个控制器实例只服务于一个请求,或者这只是一个实现细节?
我使用的是来自ASP.NET MVC4RC的ASP.NET Web API。
我需要在同一个项目中的ASP.NET MVC Controller操作方法中迭代来自ASP.NET Web 的Http路由表。所有的路线都很好。我一直在玩HttpRouteCollection,但它总是空的。
我一直在尝试这样的事情:-
var httpRoutes = new IHttpRoute[10];
new HttpRouteCollection().CopyTo(httpRoutes, 0);
foreach (var route in httpRoutes)
{
// ...
}
或者这个:-
var httpRoutes = new IHttpRoute[10];
ne
有人能确认一下,默认情况下,asp.net web操作过滤器是基于单例/实例的吗?在asp.net核心中,我观察到默认情况下它只有一个实例,并且方法是基于请求的。我不确定wweb.api动作过滤器。如果这个问题听起来很傻,很抱歉。
using System.Web.Http.Filters;
namespace SampleApp.Attributes
{
public class CustomAttribute: Attribute, IActionFilter
{
public CustomAttribute()
{