途中です。現在、属性ではC#でサポートされていない属性が2つ必要です。
属性は単なるメタデータなので、その使用中に何も実行しないとは限りません(属性コンストラクタは、あなたが追加できるコードを実行することができます)。
あなたがリンクした他のQ & Aは直接あなたがそれを行うことができるはずILを発する、私はまた、あなたが流暢なAPIを実装するプロジェクトに複雑にすることを避けることができることをかなり確信していることに言及しながら:
public class A : IMappingConfigurator
{
public string Name { get; set; }
public void Configure(IMappingConfiguration config)
{
config.Map<Foo>(foo => foo.Name);
}
}
と構成段階で、あなたは全体のインターフェイスを実装するすべてのタイプを取得し、ちょうど各1の構成を得るためにそれらのインスタンスを作成することができます
IEnumerable<IMappingConfigurator> configurators = Assembly.GetExecutingAssembly().GetTypes().Where
(
t => t.GetInterfaces().Any(t => t == typeof(IMappingConfigurator))
).Select(t => (IMappingConfigurator)Activator.CreateInstance(t));