2011-04-12 21 views
3

我需要从Castle.Core.dll调用特定函数,但似乎AutoMapper和Moq将Castle.Core合并到了它们的程序集中。如何从特定引用的DLL调用函数

这就是我需要调用

Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(typeof(System.Security.Permissions.UIPermissionAttribute)); 

但我得到一个Ambiguous reference因为Castle.Core是在3个地点(AutoMapper,起订量,以及独立的DLL)

我可以在技术上提供”因为它们全都由NuGet和Castle管理,所以NHib需要独立核心,而其他dll是由AutoMapper和Moq nuget包引入的。

有什么建议吗?其他然后不依赖NuGet来管理我的库参考?

+1

由于AutoMapper和起订量都是开源的,你可以从源代码重建它们在不嵌入Castle.Core.dll方式到他们的输出DLL中。这样,只会有一个Castle.Core程序集实例加载并且模糊性消失。 – 2011-04-12 17:29:33

+0

@Dan,这绝对是一个选项,但我想简单地使用通过NuGet安装的内容,并且未组装的AutoMapper库在NuGet中不可用。我认为jbogard甚至发布了一个未与外部库合并的AutoMapper版本,所以我甚至不需要从源代码编译。 – 2011-04-12 18:44:01

回答

0

您可以通过枚举正确程序集的类型来反射来调用它。