Skip to content

StackOverflow happens while resolving with DependencyOverride + OptionalParameter #149

@abramovandrey

Description

@abramovandrey

Description

Resolution with DependencyOverride + OptionalParameter ends with StackOverflow Exception since 5.9.0. All versions before 5.9.0 (including 5.8.13) Resolves TestClass in example below without issues.

To Reproduce

        [TestMethod]
        public void OptionalParameterTest()
        {
            using (var container = new UnityContainer())
            {
		// BUG: StackOverflow happens here since 5.9.0
                var instance = container.Resolve<TestClass>(new DependencyOverride<string>(new OptionalParameter<string>()));
                Assert.IsNull(instance.Field);

                container.RegisterInstance("123");
                instance = container.Resolve<TestClass>(new DependencyOverride<string>(new OptionalParameter<string>()));
                Assert.AreEqual("123", instance.Field);
            }
        }

        public class TestClass
        {
            public TestClass(string field)
            {
                this.Field = field;
            }		
            public string Field { get; }
        }

Metadata

Metadata

Assignees

Labels

releaseRelease branch

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions