我想注入一些其他代码来替换项目中所有代码文件中LINQ的所有用法,而无需更改单个文件。像这样:
var arr = items.Where(i => i.Price > 10).Select(i => i.Name).ToArray();
我不想在这里调用LINQ扩展,而是重定向到这个类:Company.OtherLinqExtensions
,全局集中在一个地方。
我在这里和那里有很多“使用System.Linq”。如何在不更改所有Company.OtherLinqExtensions
语句的情况下将其重定向到using
?
答案 0 :(得分:0)
假设您在命名空间My.Company
中有一些类,它使用了您所描述的LINQ并具有using System.Linq
声明。然后将所有对linq方法的调用“重定向”到您的类,您只需要在任何父命名空间(如“My”)中的同一My.Company命名空间或中声明您的类:
namespace My.Company { // OR namespace My {
public static class OtherLinqExtensions {
public static IEnumerable<T> Select<T, TResult>(this IEnumerable<T> items, Func<T, TResult> selector) {
// do your stuff
}
}
}
然后,所有扩展方法现在将调用OtherLinqExtensions
扩展名(当然,前提是您的版本与标准linq声明完全匹配)。