我的MVC应用程序具有与服务器通信的控制器,以及与存储库的对话。我使用Unity注册服务如下:
container.RegisterType< IService<Account>, AccountService >();
container.RegisterType< IService<Product>, ProductService >();
我的服务有一些本地变量,例如:
protected IAzureTable<Account> _accountRepository;
protected IAzureTable<Product> _productRepository;
protected ServiceException _ex;
protected void Initialize()
{
_ex = new ServiceException();
}
我应该如何注册服务。我应该使用新的HierarchicalLifetimeManager()。我对此有点不清楚,因为该服务具有_ex ServiceException变量。如果只维护了一个服务实例,那么该变量是否可以被多个冲突的线程写入?
不确定这是否有所不同,但我使用的是Unity.Mvc3 1.1
更新:在以下FYI中添加
public class ServiceException : ApplicationException {
public Dictionary<string, string> Errors { get; set; }
public ServiceException(Exception ex) : base("Service Exception", ex) {
Errors = new Dictionary<string, string>();
}
public ServiceException() : this(null) {}
}