代码如下:
protected void Application_Start(object sender, EventArgs e)
{
UnityContainer container = new UnityContainer();
container.RegisterType<IMapper, CustomMapper>();
container.RegisterType<ISessionLoginInfo, CustomSession>();
IDateTimeProvider dtp = DateTimeProvider.Current;
var cc = container.RegisterInstance<IDateTimeProvider>(dtp);
GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
}
在最后一个花括号处,我得到了这个异常:
“ /”应用程序中的服务器错误。 无法从程序集“ Custom.Shared,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”中加载类型“ Custom.Shared.IDateTimeProvider”。 说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。
异常详细信息:System.TypeLoadException:无法从程序集“ Custom.Shared,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”中加载类型“ Custom.Shared.IDateTimeProvider”。
程序集Custom.Shared与主Web应用程序程序集位于同一文件夹中。接口IDateTimeProvider和相应的类DateTimeProvider放置在命名空间Custom.Shared中的上述程序集Custom.Shared中。同样,如果我用RegisterInstance()消除了这一行并创建了DateTimeProvider类的实例,则错误消失了。我做错了什么以及如何正确进行DI初始化?