C# 在以.NET 4.6.2为目标的项目中,如何实现在.NET标准1.5程序集中定义的接口?

C# 在以.NET 4.6.2为目标的项目中,如何实现在.NET标准1.5程序集中定义的接口?,c#,.net,.net-core,.net-standard-1.5,C#,.net,.net Core,.net Standard 1.5,我有两个独立的项目,让我们称它们为Alpha和Bravo ProjectAlpha只针对Project.json文件中的net462框架,而ProjectBravo只针对netstandard1.5。这两个框架是兼容的 阿尔法项目参考布拉沃项目的装配。特别是,Alpha需要实现Bravo中定义的接口。让我们把这个接口称为IProblematic。这个接口主要处理头文件,并定义如下方法 bool DoStuff(List<KeyValuePair<string, IEnumerable

我有两个独立的项目,让我们称它们为Alpha和Bravo

ProjectAlpha只针对Project.json文件中的net462框架,而ProjectBravo只针对netstandard1.5。这两个框架是兼容的

阿尔法项目参考布拉沃项目的装配。特别是,Alpha需要实现Bravo中定义的接口。让我们把这个接口称为IProblematic。这个接口主要处理头文件,并定义如下方法

bool DoStuff(List<KeyValuePair<string, IEnumerable<string>>> requestHeaders, List<string> rolesList)
booldostuff(列表请求头,列表角色列表)
Project Alpha声明了一个实现该接口的类

public bool DoStuff(List<KeyValuePair<string, IEnumerable<string>>> requestHeaders, List<string> rolesList)  {... }
publicbooldostuff(列表请求头,列表角色列表){…}
到目前为止还不错。但是在运行时,我会遇到一些错误,比如
无法加载一个或多个请求的类型。我相信错误的来源来自集合类型

使用Visual Studio的“转到定义”功能,我可以看到project Alpha(462项目)正在使用。\Framework\v4.0.30319\mscorlib.dll中定义的System.Collections.Generic,而如果我在project Bravo的集合中执行相同操作,它将显示它正在使用System.Collections.Generic,在中定义。\netstandard1.3\System.Collections.dll

因此,我的问题是,如何让project Alpha在实现netstandard1.5接口时使用正确的集合程序集,而不是使用mscorlib的集合?考虑到这两个框架是兼容的,这难道不是一个问题吗


提前谢谢大家

经过一些调查,我发现问题的出现是因为我的net462应用程序(间接)依赖于
System.Collections.Immutable:“1.3.0
,我的netstandard1.5库依赖于
“NETStandard.library”:“1.6.0”“
。我将创建一个更有针对性的线程,其中包含更多代码和堆栈跟踪。很抱歉耽误了您的返回时间。

您能给我们看一些最简单的示例代码吗?另外,提供完整的错误消息也会很有帮助。如果您还没有,请尝试在一个新的解决方案中重现该问题,该解决方案只有两个以net462和NetStandar1.5为目标的程序集,并且代码绝对最少,接口中没有集合类型。这可以帮助证明或伪造,如果它真的是集合造成的问题。我已经测试了这一点,不能复制这个问题。请提供一个例子,我从IDE获得了关于从不同程序集中使用不同列表类的相同信息,但它仍然有效。我刚刚创建了一个最小的项目,我也无法复制。似乎我正在做导致问题的其他事情。我还得再调查一段时间。至少我知道我最初的怀疑是不对的。感谢到目前为止的帮助…如上所述,完整的er错误消息可能更容易指出问题。以下是更集中的(代码和堆栈跟踪)线程:我在这里遇到了一个非常类似的问题:有什么提示吗?