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 に答える