私はMEF2/.Net4.5(別名コンベンション)の新しい属性のない登録機能を調査しています。より具体的には、オープンジェネリックを登録しようとしています。
public interface IRepository<T>
{
T Fetch();
}
public class Repository<T> : IRepository<T>
{
public T Fetch()
{
return default(T);
}
}
public class Quotation
{
}
class Program
{
static void Main(string[] args)
{
var registrationBuilder = new RegistrationBuilder();
registrationBuilder
.ForType<Repository<Quotation>>()
.Export();
registrationBuilder
.ForTypesMatching(t => t.Name.EndsWith("ory"))
.Export();
registrationBuilder
.ForType<Quotation>()
.Export<Quotation>();
var catalog = new AssemblyCatalog(typeof (Program).Assembly, registrationBuilder);
foreach (var part in catalog.Parts)
{
Console.WriteLine(part.ToString());
}
}
}
リポジトリの登録に使用しているメソッド(コードを参照)に関係なく、カタログにはQuotationクラスのみが含まれています。何かが足りないのですか、それとも登録APIでオープンジェネリックがサポートされていませんか?
よろしくお願いします、
K.コルセリス