具体的な例の指摘はできませんが、Silverlight 4アプリケーションの一部を構成することは非常に簡単です。例を考える:
public partial class MainPage : UserControl, IContext
{
[ImportMany]
public IEnumerable<IPlugin> Plugins { get; set; }
public MainPage()
{
InitializeComponent();
CompositionInitializer.SatisfyImports(this);
Plugins.First().Run(this);
}
public void ShowMessage(string message)
{
textBox1.Text = message;
}
}
public interface IContext
{
void ShowMessage(string message);
}
public interface IPlugin
{
void Run(IContext context);
}
[Export(typeof(IPlugin))]
public class SamplePlugin : IPlugin
{
public void Run(IContext context)
{
context.ShowMessage("Hello World");
}
}
CompositionInitializer
タイプは、あなたの展開XAPファイルから部品を読み込むカタログに差し込まれているアクションデフォルトCompositionContainer
SatisfyImports
メソッドを提供します。カタログの作成方法を細かく制御したい場合は、いつでも独自のCompositionContainer
を作成することができます。
アドバイスを求めるSilverlightのMEFの特定の側面はありますか?