2

我正在尝试在可移植类库中使用 .NET 4 的动态类型,但我无法让所有必需的引用正常工作。我可以很好地引用 System.Core,但 Microsoft.CSharp 给我带来了一些麻烦。似乎我需要添加所有不同版本的 Microsoft.CSharp.dll 作为对我的项目的引用,但 Visual Studio 只允许我添加一个;如果我添加另一个,我会收到一条错误消息,指出它已被引用。不过,我不能只用其中一个来编译——如果我引用 Windows 的话,我会得到:

缺少编译器所需的成员“Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember”

当我尝试构建项目时。如果我引用 Silverlight 一个,该引用似乎由于某种原因无效 - 它在解决方案资源管理器的引用列表中有一个黄色警告图标!

那么有什么方法可以在不破坏我的项目或将其转换为非便携式库的情况下引用这两个 DLL?

谢谢!

4

1 回答 1

3

您无法创建使用.NET 4.0 中的dynamic关键字的可移植库。

.NET 4.5 添加了对可移植库中的动态类型的支持

在 .NET 4.0 中,您必须使用反射来进行您想要进行的调用(如果您无法升级到 4.5)。

于 2012-09-18T15:57:34.113 回答