0
는 I 상위 선반을 사용하며, I가 갖는 서비스의 기본 방법 윈도우 서비스, I이 서비스의 정적 속성에 주입하는 스프링을 사용하고Spring.Net은 인스턴스화 된 Windows 서비스에 삽입합니까? 가능한가?
static void Main(string[] args)
{
//TopShelf
if (args != null && args.Length > 0)
{
var host = HostFactory.New(
x =>
{
x.Service<MyWindowsSvcHost>(
s =>
{
s.ConstructUsing(name => new MyWindowsSvcHost());
s.WhenStarted(tc => tc.Start(null));
s.WhenStopped(tc => tc.Stop());
});
x.RunAsLocalSystem();
x.SetDescription("SomeServiceName");
x.SetDisplayName("SomeServiceName");
x.SetServiceName("SomeServiceName");
});
host.Run();
Environment.ExitCode = 0;
}
else
{
ServiceBase[] ServicesToRun = new ServiceBase[] { new MyWindowsSvcHost() };
ServiceBase.Run(ServicesToRun);
}
}
있다. MyWindowsSvcHost 내부에는 myStaticProperty 정적 속성이 있습니다. 내 서비스의 app.config가
<object id="SomeName" singleton="false" type="MyWindowsSvcHostAssembly.MyWindowsSvcHost, MyWindowsSvcHostAssembly">
<property name="MyStaticProperty" ref="myStaticObject" />
</object>
<object id="myStaticObject" singleton="true" type="SomeAssembly.MyStaticClass, SomeAssembly">
</object>
처럼 보인다 그리고 서비스 안에, 내가 재산
공공 정적 SomeClass의 MyStaticProperty을 {얻을 얼마나 다음과 같다; 세트; }
하지만 항상 null입니다. 아래의 싱글 톤을 true로 변경하고 디버깅하면 항상 올바르게 할당되고 모든 것이 작동합니다.
<object id="SomeName" singleton="true" type="MyWindowsSvcHostAssembly.MyWindowsSvcHost, MyWindowsSvcHostAssembly">
<property name="MyStaticProperty" ref="myStaticObject" />
</object>
여기에서 무슨 일이 벌어지고 있는지 알고 싶습니다.