Windsor의 "Per Graph"라이프 스타일을 시뮬레이트하여 올바른 방식으로 내 물체를 해결하려고합니다. 나는 Bound 라이프 스타일을 시도했지만 어떤 어려움없이, 아마 주제에 대한 지식 부족 때문일 것입니다. 나는 다음과 같은 예제 코드로 표현된다 필요가있는 무엇 : 그것 때문에 모든 작품Castle Windsor의 "Per Graph"라이프 스타일 시뮬레이션
class Program
{
static void Main(string[] args)
{
var container = new WindsorContainer();
container.Register(
Component.For<ClassA>().LifestyleBoundTo<ClassC1>(),
//Component.For<ClassA>().LifestyleBoundTo<ClassC2>(),
Component.For<ClassB1>().LifeStyle.Transient,
Component.For<ClassB2>().LifeStyle.Transient,
Component.For<ClassC1>().LifeStyle.Transient,
Component.For<ClassC2>().LifeStyle.Transient);
var c1 = container.Resolve<ClassC1>();
Assert.AreSame(c1.B1.A, c1.A);
var c2 = container.Resolve<ClassC2>();
Assert.AreSame(c2.B2.A, c2.A);
Assert.AreNotSame(c1.A, c2.A);
}
}
class ClassA
{
}
class ClassB1
{
public ClassB1(ClassA a)
{
A = a;
}
public ClassA A { get; set; }
}
class ClassC1
{
public ClassC1(ClassA a, ClassB1 b1)
{
A = a;
B1 = b1;
}
public ClassA A { get; set; }
public ClassB1 B1 { get; set; }
}
class ClassB2
{
public ClassB2(ClassA a)
{
A = a;
}
public ClassA A { get; set; }
}
class ClassC2
{
public ClassC2(ClassA a, ClassB2 b2)
{
A = a;
B2 = b2;
}
public ClassA A { get; set; }
public ClassB2 B2 { get; set; }
}
}
가 나는 또한 유사한 문제에 직면하고있다 –
답을 업데이트 : http://stackoverflow.com/questions/25064516/dependency-injection-lifestyle-service-shared-instance-between-2-instances-of?noredirect = 1 # comment39052582_25064516 답변을 찾으면 알려주세요. –