我目前正在尝试编写Dynamic Linq的扩展。为此,我需要向IEnumerableSignatures
位于内部类中的接口添加方法签名ExpressionParser
。
internal class ExpressionParser
{
interface IEnumerableSignatures
{
[...]
}
}
虽然我可以直接将签名添加到代码中,但我宁愿将其定义为接口的扩展方法,以保持原始代码的整洁。通常,要添加方法DefaultIfEmpty
,我会这样做:
internal static class Extension
{
static void DefaultIfEmpty(this ExpressionParser.IEnumerableSignatures sig);
}
但是,这会产生访问错误,因为ExpressionParser
是内部的。我已经尝试了类和方法的几种访问级别组合。
有没有办法向这样的接口添加扩展方法,还是我必须弄乱原始代码?
[编辑]事实证明,即使将接口本身设为内部(或就此而言是公共的),动态 linq 也无法识别它。我在运行时仍然有一些未找到的异常。因此,编辑 codeplex 代码没有(明显的)方法。[/编辑]