您已使用IValidator配置容器,因此您必须使用IValidator而不是Validator来解决:
Validator validator1 = new Validator(); IUnityContainer container = new UnityContainer(); container.RegisterInstance(validator1); Validator validatorCopied = validator1; Console.WriteLine(validator1.GetHashCode()); Console.WriteLine(validatorCopied.GetHashCode()); IValidator validator2 = container.Resolve (); Console.WriteLine(validator2.GetHashCode()); IValidator validator3 = container.Resolve (); Console.WriteLine(validator3.GetHashCode());
或者,您可以使用Validator保持注册,但之后您还必须使用Validator解决:
Validator validator1 = new Validator(); IUnityContainer container = new UnityContainer(); container.RegisterInstance(validator1); Validator validatorCopied = validator1; Console.WriteLine(validator1.GetHashCode()); Console.WriteLine(validatorCopied.GetHashCode()); Validator validator2 = container.Resolve (); Console.WriteLine(validator2.GetHashCode()); Validator validator3 = container.Resolve (); Console.WriteLine(validator3.GetHashCode());