.Net Core : 关于通过反射获取 string 类型的 Contains 方法报错 Ambiguous match found 的问题
将基于 .NET Framework 的项目迁移到基于 .NET Core 的过程中,发现原项目中抛出一个 AmbiguousException 的错误:
经排查,问题出现在下面的代码中:
Expression.Call(left, typeof (string).GetMethod("Contains"), right)
程序在动态组建 Lambda 表达式时,需要通过反射来获取 string 类型的 Contains 方法,但现在 Contains 方法貌似不见了...
我在 IDE 中尝试 "test".Contains(".."),发现 Contains 不但还在,而且使用时完全没有问题...
最后,通过 forums.asp.net 找到解决方法:
Expression.Call(left, typeof (string).GetMethod("Contains", new[] { typeof(string) }), right)
也就是,反射时需指定 参数 的 类型 。
- 本文链接 : https://www.zdyla.com/post/dot-net-core-about-the-problem-that-the-contains-method-of-getting-string-type-through-reflection-reports-an-error-ambient-match-found.html
- 版权声明 : 本博客所有文章和照片除特别声明外,转载请联系作者获取授权,并请注明出处!