C# 为什么我会遇到这种奇怪的“您必须添加对程序集的引用”错误?

C# 为什么我会遇到这种奇怪的“您必须添加对程序集的引用”错误?,c#,wpf,mvvm,constructor,reference,C#,Wpf,Mvvm,Constructor,Reference,这里有一个非常简单的问题。到目前为止,我有一个带有构造函数的视图模型类,非常好: public DigitalServiceProviderPriceViewModel(Release relatedRelease) { this.relatedRelease = relatedRelease; InitialiseViewModel(new TracksModel(StateManager.CurrentUser)); InitialiseDigitalServiceP

这里有一个非常简单的问题。到目前为止,我有一个带有构造函数的视图模型类,非常好:

public DigitalServiceProviderPriceViewModel(Release relatedRelease)
{
    this.relatedRelease = relatedRelease;
    InitialiseViewModel(new TracksModel(StateManager.CurrentUser));
    InitialiseDigitalServiceProviderPrice();
}
这在ViewModels dll中,并从UserControl类的代码隐藏处调用:

这一切都很好,但我需要向构造函数添加另一个输入参数,所以我这样做了:

public DigitalServiceProviderPriceViewModel(Release relatedRelease, 
    DspProductTypes dspProductType)
{
    this.relatedRelease = relatedRelease;
    DspProductType = dspProductType;
    InitialiseViewModel(new TracksModel(StateManager.CurrentUser));
    InitialiseDigitalServiceProviderPrice();
}
然后这样称呼它:

DigitalServiceProviderPriceViewModel digitalServiceProviderPriceViewModel = new 
    DigitalServiceProviderPriceViewModel(viewModel.Release, DspProductTypes.None);
但是,执行此操作后,我得到以下错误:

错误3在未引用的程序集中定义了类型“Midas.Models.Interfaces.ITracksModel”。必须添加对程序集“Midas.Models,Version=3.1.5168.25362,Culture=neutral,PublicKeyToken=fd8cb4d036a0621f”的引用。C:\DevelopmentProjects\Midas\Midas.Views\ReleaseView.xaml.cs 49 13 Midas.Views

ITracksModel实例是InitialiseViewModel方法的输入参数。。。您可以在原始示例中看到正在传递的TracksModel对象。但是,在使用以前的构造函数时,我不需要对模型dll的引用,所以我尝试。。。即使我将新构造函数更改为此,我仍然会得到相同的错误:

public DigitalServiceProviderPriceViewModel(Release relatedRelease, int number)
{
    // Just plain int input parameter and no content in constructor
}

...

DigitalServiceProviderPriceViewModel digitalServiceProviderPriceViewModel = new 
    DigitalServiceProviderPriceViewModel(viewModel.Release, 0);
显然,我不能从视图dll添加对模型dll的引用,因为已经有一个引用模型dll的视图模型dll。此外,我不应该这样做,因为程序已经构建并成功运行了,直到现在

那么,有人能解释一下这个问题吗?为什么在简单地向构造函数添加一个新的输入参数时会出现错误?最后,我如何消除这个错误

更新>>>


我只是想说,通过完全避免这个问题,并且不使用构造函数来传递这些值,可以很容易地解决这个问题,但是我正在尝试找出这里发生了什么,而不是试图找到解决方法。

您是否尝试过清理解决方案并重新生成?您的DspProductTypes类是否有返回值或参数类型为ITracksModel的公共成员?这似乎是最有可能的问题…尊敬@Lucasabiledebob,我甚至不打算回答这个评论。。。我不是noob.DspProductTypes是一个枚举,仅此而已,请看最后一个示例。。。第二个参数是什么类型都不重要。。。它还是坏了。
public DigitalServiceProviderPriceViewModel(Release relatedRelease, int number)
{
    // Just plain int input parameter and no content in constructor
}

...

DigitalServiceProviderPriceViewModel digitalServiceProviderPriceViewModel = new 
    DigitalServiceProviderPriceViewModel(viewModel.Release, 0);