0

我需要查找项目中是否使用了特定的接口,我刚刚找到了类似的东西

Type IType = Type.GetType("iInterfaceName"); // I want to look in whole project, not in one file
if (IType == null)
{  
   Text = "Interface Not Exist";
}
else
{
    Text = "Interface Exist";
}

我不确定这是否正确,但这是我发现的最新东西并且不起作用,非常感谢任何帮助......

4

2 回答 2

1

Assembly.Load在你去之前使用GetType如下:

Assembly.Load("YourProjectName")
        .GetType("iInterfaceName");
于 2013-01-09T21:23:43.677 回答
1

假设你有如下界面:

public interface IFoo
{
}

您可以找出是否有任何类型以这种方式实现它:

var isImplemented = Assembly.GetExecutingAssembly().
                             GetTypes().
                             Any(t => t.IsAssignableFrom(typeof (IFoo)));

要使用上述内容,请添加到您的 using 指令:

using System.Linq;

对于 .NET 2.0:

var isImplemented = false;
foreach (var t in Assembly.GetExecutingAssembly().GetTypes())
{
    if (!t.IsAssignableFrom(typeof (IFoo))) continue;
    isImplemented = true;
    break;
}
//Operate
于 2013-01-09T21:26:03.037 回答