-1

以下のメソッドは、System.Type指定した名前空間からすべてのクラスを返します。ただし、すべてが必要なわけではなく、必要なタイプのみを取得できるようにしたいと考えています。type が欲しいとしましょうINMIRegisterRepository。これのために以下のリストをフィルタリングする方法は?助けてください。

public static List<Type> TypesInNameSpace(Assembly assembly, string nameSpace)
{
    return assembly
            .GetTypes()
            .Where(O => string.Equals(O.Namespace, nameSpace, StringComparison.Ordinal))
            .ToList();
}
4

2 に答える 2

0
var Item =  assembly
               .GetTypes()
               .FirstOrDefault(O => string.Equals(O.Namespace, 
                                       "INMIRegisterRepository",
                                        StringComparison.Ordinal));

または、返されたリストにアクセスする場合は、次のようにします。

var yourList = TypesInNameSpace(......

var Item = yourList.FirstOrDefault(O => string.Equals(O.Namespace, 
                                           "INMIRegisterRepository",
                                            StringComparison.Ordinal));
于 2013-05-10T09:20:37.093 に答える
0

Assembly.GetTypeを使用するだけです:

assembly.GetType("INMIRegisterRepository");

ラムダ式を使用すると、次のことができます。

assembly.GetTypes().Where(t => t.GetType() == typeof(INMIRegisterRepository))
于 2013-05-10T09:25:08.230 に答える