首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >零星的“一个接口,不能被构造。你是否缺少类型映射”

零星的“一个接口,不能被构造。你是否缺少类型映射”
EN

Stack Overflow用户
提问于 2012-01-27 04:20:59
回答 2查看 2.7K关注 0票数 0

站点的初始部署工作正常。大约2-3小时后,由于无法解析依赖关系,控制器突然无法实例化(或者至少错误消息是这样告诉我的)。

我尝试过各种方法,但似乎都不能解决这个问题。有没有人知道我可以检查什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-01 06:24:15

我仍然不知道发生了什么,但我设法解决了它。我使用第三方bootstrapping库来注册我的组件和映射。但是在我在MEF上滚动了我自己的,并控制了注册后,这个问题就消失了。我猜它是在做一些时髦的事情,在不该处理的时候处理掉了。谢谢你的帮助。

如果有人在使用http://bootstrapper.codeplex.com/时遇到此问题,请使用以下声明:

代码语言:javascript
复制
    Bootstrap.Bootstrapper
        .With.Unity()
        .And.AutoMapper()
        .And.ServiceLocator()
        .Start();

我将其替换为:

代码语言:javascript
复制
    IUnityContainer container = new UnityContainer();
    MEFContainer mefContainer = new MEFContainer();
    mefContainer.UnityRegistry.ForEach(x => x.Register(container));
    container.RegisterInstance<IMappingEngine>(Mapper.Engine);
    mefContainer.AutoMapperRegistry.ForEach(x => x.CreateMap(Mapper.Configuration));

哪里

代码语言:javascript
复制
    private class MEFContainer
    {
        [ImportMany(typeof(IUnityRegistration))]
        public List<IUnityRegistration> UnityRegistry { get; set; }

        [ImportMany(typeof(IMapCreator))]
        public List<IMapCreator> AutoMapperRegistry { get; set; }

        public MEFContainer()
        {
            var catalog = new DirectoryCatalog("bin");
            var compositionContainer = new CompositionContainer(catalog);
            compositionContainer.ComposeParts(this);
        }
    }

注意,IUnityRegistration.Register()和IMapCreator.CreateMap()是在第三方代码中定义的。MEF引用System.ComponentModel.Composition和System.ComponentModel.Composition.Hosting。最终会重构。

票数 0
EN

Stack Overflow用户

发布于 2012-01-27 04:48:05

最近,我们的一个拦截器遇到了类似的情况。突然之间,它就不再工作了。我们拦截对程序集X.Y.Z.dll中定义的接口的所有调用。但过了一段时间,操作系统决定将该文件命名为X.Y.Z.DLL。在此期间,没有发生新的部署。但是突然之间,名称匹配失败了。您是否按名称在配置中加载某些程序集?也许你应该在字符串比较中检查IgnoreCase。

另一个想法是:你是否对你的对象使用了某种缓存?还是基于缓存的LifetimeManager?如果缓存项在一段时间后失效,您将丢失这些对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9024754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档