【发布时间】:2017-11-28 23:57:59
【问题描述】:
有人能解释一下为什么使用'FindImplementationForInterfaceMember()'方法找不到类A中M1的接口实现吗?
所有变量都引用了一个符号,除了 'am1' 为空。
string source = @"
namespace Lib
{
public interface IA<T>
{
void M1();
}
public class A<T> : IA<T>
{
public void M1() { }
}
}
";
var compilation = CSharpCompilation.Create("MyCompilation")
.AddSyntaxTrees(CSharpSyntaxTree.ParseText(source));
var global = compilation.GlobalNamespace;
var lib = global.GetMembers("Lib").OfType<INamespaceSymbol>().Single();
var ia = lib.GetTypeMembers("IA").OfType<ITypeSymbol>().Single();
var a = lib.GetTypeMembers("A").OfType<ITypeSymbol>().Single();
var iam1 = ia.GetMembers("M1").OfType<IMethodSymbol>().Single();
var am1 = a.FindImplementationForInterfaceMember(iam1);
【问题讨论】:
标签: c# roslyn roslyn-code-analysis