确实存在构造函数参数不存在的例外情况

  发布于 2023-02-06 17:57

我试图通过使用Unity将基于接口的两个对象注入到类构造函数中.

单元测试时我当前收到以下错误:

结果消息:
测试方法TestProject.TFStests.Check_Interface_CheckOut_Method引发异常:System.InvalidOperationException:类型Adp.Tools.VersionControl.TfsVersionControl.TfsVcPromotionManager没有带参数的构造函数(TfsVcQaCheckoutWorker).

以下代码是我的Unity类,用于注册和解析TfsVCPromotionManager对象:

public class UnityClass
{
    public static ITfsVcPromotionManager returnNewPromotionManager(
       VersionControlServer tfServer)
    {
        var container = new UnityContainer();

        ITfsVcQaCheckinWorker test1 = CreateUnityCheckInWorker();
        ITfsVcQaCheckoutWorker test2 = CreateUnityCheckOutWorker(tfServer);

        container.RegisterType(
            new InjectionConstructor(test2), new InjectionConstructor(test1));
        return container.Resolve();
    }

    private static ITfsVcQaCheckinWorker CreateUnityCheckInWorker()
    {
        var container = new UnityContainer();

        container.RegisterType();
        return container.Resolve();
    }

    private static ITfsVcQaCheckoutWorker CreateUnityCheckOutWorker(
        VersionControlServer passedServer)
    {
        var container = new UnityContainer();

        container.RegisterType(
            new InjectionConstructor(passedServer));
        return container.Resolve();
    }
}

这是TfsVcPromotionManager班上的顾问.请注意,它清楚地基于接口的实例需要ITfsVcQaCheckoutworkerITfsVcCheckinWorker.

 private ITfsVcQaCheckoutWorker _checkOutWorker;

    private ITfsVcQaCheckinWorker _checkInWorker;

    public TfsVcPromotionManager(ITfsVcQaCheckoutWorker checkOutWorker,
                                 ITfsVcQaCheckinWorker checkInWorker)
    {
        if (checkOutWorker == null || checkInWorker == null)
        {
            throw new NullReferenceException();
        }

        _checkOutWorker = checkOutWorker;
        _checkInWorker = checkInWorker;
    }

任何人都可以告诉我我做错了什么.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有