私たちのプリズムアプリケーションでは、ユーザーがツリー内のアイテム(別個のモジュール)をクリックすると、中央ペインにモジュールをロードする必要があります。中央ペインのモジュール(デザイナーモジュールなど)はファイルを開き、パスが与えられていればそれ自身を表示することができます。ファイルのパスをこのモジュールに渡すにはどうすればよいですか?デザイナモジュールの例プリズムで同期メッセージを渡す
について
public DesignerViewModel(DataAccess dataAccess)// This will be injected
{
}
//The following class can create the model objects using the IDataService for getting data from remote location
public DataAccess(IDataService service)//this will be injected
{
}
データアクセスオブジェクトは、デザイナモジュールに対してローカルであるので、私は、モジュール外部に公開したいwouldntの。そう登録は
public class DesignerModule : IModule
{
public void Initialize()
{
var container = ServiceLocator.Current.GetInstance<IUnityContainer>();
container.RegisterType<Object, DesignerView>("DesignerUI");
container.RegisterType<DataAccess>();
}
}
IDataServiceは、アプリケーションレベルIDataService全体アプリのシングルトンであること
public class BootStrapper : UnityBootstrapper
{
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType<IDataService, DataService>();
}
}
注に登録されたモジュールで行われます。 IDataServiceのモジュールインスタンスに固有のファイルのパスを渡すことができません。あなたが好きなように中央のペインに任意の数のモジュールを開くことができることに注意してください、ツリーアイテムをクリックする - >ツリーは、選択されたアイテムid-> appを使ってイベントを発生させ、アイテムIDに対応するパスを見つけ、モジュール
_regionManager.AddToRegion( "CenterRegion"、DesignerModule);と言うと、パスをどのように渡しますか。プリズムはすべての依存性注射を美しく行いますが、その道をどのように通すのが大きな問題ですか?
@ Radik-これは私が欲しいものではありません。モジュールの作成自体は、パス情報を含むツリーモジュールからのイベントのためです。このイベントはメインアプリケーションによって処理され、mainappはアプリケーションの中央ペインにDesigner Moduleを作成します。モジュールインスタンスの作成時点でパス情報を渡すことをお勧めします。 – Jimmy