dependency-injection - 如何使用TinyIoC插入 IPrincipal?

  显示原文与译文双语对照的内容

这一行:


container.Register<IPrincipal>().UsingConstructor(() => HttpContext.Current.User);

引发以下异常:

不能 register 类型 System.Security.Principal.IPrincipal - 抽象类或者接口不是SingletonFactory的有效实现类型。

描述:在当前web请求执行过程中发生未处理的异常。 请检查堆栈跟踪有关错误和其原始代码中的位置的详细信息。

异常详细信息:Tss.Rhnncp.DietPlanner.Bootstap.TinyIoCRegistrationTypeException: 不能 register 类型 System.Security.Principal.IPrincipal - 抽象类或者接口不是SingletonFactory的有效实现类型。

源错误:


Line 2663: throw new TinyIoCRegistrationTypeException(registerImplementation,"SingletonFactory");
Line 2664:
Line 2665: if (!IsValidAssignment(registerType, registerImplementation))
Line 2666: throw new TinyIoCRegistrationTypeException(registerImplementation,"SingletonFactory");
Line 2667:

时间:

我不熟悉 TinyIoc,但我希望你需要这样的东西:


container.Register<IPrincipal>(() => HttpContext.Current.User);

...