1 // Copyright 2004-2007 Castle Project - http://www.castleproject.org/
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle
.Windsor
.Tests
17 using System
.Collections
.Generic
;
18 using Castle
.MicroKernel
;
19 using NUnit
.Framework
;
22 public class ContainerProblem
25 public void CausesStackOverflow()
27 IWindsorContainer container
= new WindsorContainer();
29 container
.AddComponent("child", typeof(IChild
), typeof(Child
));
30 container
.AddComponent("parent", typeof(IParent
), typeof(Parent
));
32 // child or parent will cause a stack overflow...?
34 // IChild child = (IChild)container["child"];
35 // IParent parent = (IParent) container["parent"];
36 object component
= container
["parent"];
40 public interface IParent
: IList
<IChild
>
44 public interface IChild
48 public class Child
: IChild
50 public Child(IParent parent
)
55 public class Parent
: List
<IChild
>
57 public Parent(IKernel kernel
)