gpt4 book ai didi

c# - 使用引用第二个程序集的程序集,而不引用该程序集

转载 作者:太空狗 更新时间:2023-10-29 23:31:03 24 4
gpt4 key购买 nike

我有一个小型库,其中包含各种随机扩展方法。最近我将一些 WPF FrameworkElement 扩展方法引入其中,但发现自己在另一个使用我的库的项目(控制台应用程序)中遇到编译器错误,因为现在它需要引用几个 WPF 相关程序集(找不到 FrameworkElement等等等等)。此项目不调用任何涉及 FrameworkElement 的方法。

随着我的扩展方法库的增长,我宁愿不必将它分解成几个小程序集,也不想在非 WPF 项目中添加一堆对 WPF 程序集的引用。有什么办法可以解决这个问题,还是我必须拆掉我的图书馆?

我在 .NET 4.5 中使用 VS 2013

最佳答案

事实证明,您可以通过将有问题的类型放在不同的命名空间中来做到这一点。我所有的扩展方法都在同一个 Common.Extensions 命名空间中,这显然会导致加载该命名空间中的所有内容。通过将 WPF 特定扩展移动到 Common.WPF.Extensions,我能够将它们全部放在同一个程序集中。

更新:

此错误的具体原因归结为其中一种扩展方法中包含的面向公众的类型。原来你可以为你没有引用的类型有一个扩展方法,但是这些方法都不能有参数、返回或使用未引用类型的类型声明。就我而言,我有

public static void SetParentCursor<T>(this FrameworkElement frameworkElement, Cursor cursor) where T : FrameworkElement

where T : FrameworkElement 最终杀死了它。

关于c# - 使用引用第二个程序集的程序集,而不引用该程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25101116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com