1. ホーム
  2. c#

[解決済み] 異なるアセンブリのクラス名から型を解決する

2023-02-01 19:03:09

質問

あるクラスの Type を解決する必要があるメソッドがあります。このクラスは、名前空間が似ている別のアセンブリに存在します。

MyProject.Domain.Model

以下のように実行しようとしています。

Type.GetType("MyProject.Domain.Model." + myClassName);

このアクションを実行しているコードが、型を解決しようとしているクラスと同じアセンブリにある場合、このコードはうまく機能しますが、私のクラスが別のアセンブリにある場合、このコードは失敗します。

このタスクを達成するはるかに良い方法があることは確かですが、探しているクラスの型を解決するためにアセンブリを解決し、その中で名前空間を横断する経験はあまりありません。このタスクをより優雅に達成するためのアドバイスやヒントがあれば教えてください。

どのように解決するのですか?

このようにアセンブリ名を追加する必要があります。

Type.GetType("MyProject.Domain.Model." + myClassName + ", AssemblyName");

曖昧さを避けるため、またはアセンブリがGACにある場合は、このような完全修飾されたアセンブリ名を指定する必要があります。

Type.GetType("System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");