Несколько вопросов о замке Виндзор.
У меня есть сервис, который выглядит следующим образом:
public interface IMysRepository
{
ISomeObject GetById(int id);
}
public interface IMyService
{
ISomeObject GetById(int id);
}
public class MyService : IMyService
{
MyService(IMysRepository repository)
{
_repository = repository;
}
public ISomeObject GetById(int id)
{
return _repository.GetById(id);
}
IMysRepository _repository
}
Я думаю, что лучше всего сделать это в контейнере, ноне уверен, должен ли я оставить это как Singleton или Transient.Единственное состояние, которое он хранит - это хранилище.Я думал, что лучше всего было бы использовать Singleton, и код тоже выглядит чище.Например:
//Singleton version.
var service = container.Reslove<IMyService>();
var obj = IMyService.GetById(100);
против
//Transient version.
var service = container.Reslove<IMyService>();
try
{
var obj = IMyService.GetById(100);
}
finally
{
container.Release(service);
}
Еще одна вещь, которая меня интересует, безопасна ли нить Касла?