私は次の例(アグレッシブオールドモード)に従っていました:
これが私の完全なソースコードです:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using Castle.Facilities.Startable;
using Castle.MicroKernel;
using Castle.MicroKernel.Registration;
namespace Test
{
public interface IStartable
{
void Start();
void Stop();
}
public class Startable : IStartable
{
public Startable()
{
Console.WriteLine("Created!");
}
public void Start()
{
Console.WriteLine("Started!");
}
public void Stop()
{
Console.WriteLine("Stopped!");
}
}
[TestFixture]
public class StartableFacilityContainerTest
{
[Test]
public void TestOperation()
{
IKernel container = new DefaultKernel();
container.AddFacility<StartableFacility>();
container.Register(Component.For<Startable>());
Console.WriteLine("Registered!");
container.Dispose();
Console.WriteLine("Released!");
}
}
}
ただし、実行すると、次のようになります。
Registered!
Released!
私が(例で与えられているように)得ることを期待するとき:
Created!
Started!
Registered!
Stopped!
Released!
基本的に私のStartableは起動しませんでした。
これは、.Net4.0およびCastleWindsor3.0でテストされています
私は何を間違えましたか?