プロパティのインポートに必要なラムダ式はやや混乱していると思います。また、インポートとエクスポートに MEF 規則を使用する方法も理解しようとしているため、一度に多くのことを引き受けようとしている可能性があります。
ResourceDictionary
以前にインポートしたコントラクト名を次のようにエクスポートしています。
[ImportMany("ApplicationResources", typeof(ResourceDictionary))]
public IEnumerable<ResourceDictionary> Views { get; set; }
これはうまく機能し、問題ありませんが、これを 経由でインポートしようとしてRegistrationBuilder
いますが、これを行う方法を完全には理解していません。
これは私が信じているものをエクスポートします(ただし、正直に言うと、構文を完全には理解していません):
var registration = new RegistrationBuilder();
registration.ForTypesDerivedFrom<ResourceDictionary>()
.Export<ResourceDictionary>(x => x.AsContractName("ApplicationResources"));
App
設定したいプロパティがあります
これを試してみました(アプリ内で実行)
registration.ForType<App>()
.ImportProperty<ResourceDictionary>(x => x.Views);
しかし、これは機能していません。どうにかしてコントラクト名を設定する必要があると思いますか? 誰かがこれの構文を教えてもらえますか? 正しい構文を見ることができれば、それがどのように機能するかをよりよく理解できるかもしれません...願っています!