Windows サービス内で StructureMap を初期化するにはどうすればよいですか?
私が得ているエラーは次のとおりです。提供されたサービスタイプは、デフォルトの(パラメーターなしの)コンストラクターがないため、サービスとしてロードできませんでした。この問題を解決するには、既定のコンストラクターを型に追加するか、型のインスタンスをホストに渡します。
Visual Studio 2008 を使用して Windows フォーム アプリケーションを作成しました。このアプリケーションでは、これらのファイルを追加しました。
- service.cs
- MyPrivateServiceService.cs
- AppRegistry.cs
コード: パブリック クラス MyPrivateServiceService
{
private readonly IAdapter adapter;
public MyPrivateServiceService(IAdapter adapter)
{
this.adapter = adapter;
}
[OperationBehavior]
public void DoSomthing()
{
var res = adapter.GetById(1);
}
}
partial class Service : WcfServiceBase
{
static Service()
{
GlobalContext.Properties["PROGRNAAM"] = ServiceNaamKort;
log = LogManager.GetLogger(typeof(Service));
InitializeIoc();
}
private static void InitializeIoc()
{
ObjectFactory.Configure(x =>
{
x.AddRegistry<AppRegistry>();
});
}
protected override void OnStart(string[] args)
{
try
{
base.OnStart(args);
host = new ServiceHost(typeof(MyPrivateServiceService));
host.Open();
}
catch (Exception ex)
{
log.Fatal("....", ex);
DisposeHost();
throw;
}
}
}
public class AppRegistry : Registry
{
public AppRegistry()
{
Scan(s =>
{
s.WithDefaultConventions();
});
}
}
ありがとうございました
オリ