私は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を処分して、それをやり直すべきだと思います、どう思いますか? ありがとう
ご意見ありがとうございます。私はあなたが推奨するようにしました。それはまだ正常に動作しています(オブジェクトはサービスクラスに注入されます)。しかし、オブジェクトをClientManagerクラスに変更した場合、サービスクラスではオブジェクトが更新されていません。 –
これは可能ですか、同じインスタンスを挿入する必要がありますか、新しいインスタンス、それは方法を知らない。インスタンスを変更していて、再割り当てするだけでなく、インスタンスを変更しないでください。 – mythz
申し訳ありませんが、私はインスタンスに間違ったデータを割り当てていました..ありがとう!! –