【发布时间】:2016-05-12 16:32:53
【问题描述】:
我正在使用 ServiceStack 做一个应用程序。我可以毫无问题地注入一个对象,但是,该对象可以在服务类之外修改,所以,我需要再次重新注入 代码如下:
public class ClientManager: ApplicationContext{
public ClientManager(AppConfig appConfig)
{
_appConfig = appConfig;
_activeForm = LayoutFactory(appConfig.Layout);
var appHost = new AppHost(_activeForm, _appConfig);
var listeningOn = string.Format("http://*:{0}/", new Uri(appConfig.UrlBroker).Port);
appHost.Init();
appHost.Start(listeningOn);
var timerMetadata = new Timer(CheckMetadata, null, 0, 60000);
}
}
public class AppHost : AppSelfHostBase
{
private ILayout _layout;
private AppConfig _appConfig;
public AppHost(ILayout activeForm, AppConfig appConfig)
: base("ClientService", typeof(ClientService).Assembly)
{
_layout = activeForm;
_appConfig = appConfig;
}
public override void Configure(Container container)
{
container.Register("activeForm", _layout);
container.Register("config", _appConfig);
}
}
public class ClientService : Service
{
public HttpResult Post(Person request)
{
HttpResult response = new HttpResult();
_initConf = ServiceStackHost.Instance.Container.ResolveNamed<AppConfig>("config");
}
}
所以,ClientManager 类有一个线程可以修改对象 appConfig 和 activeForm(这些对象被注入到服务类中) 现在,如果我修改对象,它不会再次注入它。我认为我应该处置 AppHost,然后重新启动它,你怎么看? 谢谢
【问题讨论】:
标签: c# rest servicestack