В основном у меня есть следующий сценарий:
App.xaml.cs:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
string x = (e.Args.Length > 0) ? e.Args[0];
string y = (e.Args.Length > 1) ? e.Args[1];
Bootstrapper bootstrapper = new MyBootstrapper(x, y);
bootstrapper.Run();
}
MyBootstrapper.cs:
public sealed class MyBootstrapper : MefBootstrapper
{
private string _x;
private string _y;
public MyBootstrapper(string x, string y)
{
_x = x;
_y = y;
}
protected override void ConfigureAggregateCatalog()
{
base.ConfigureAggregateCatalog();
AggregateCatalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly()));
}
protected override DependencyObject CreateShell()
{
return Container.GetExportedValue<ClientShell>();
}
protected override void InitializeShell()
{
base.InitializeShell();
Application.Current.MainWindow = (Window)Shell;
Application.Current.MainWindow.Show();
}
}
FooBarService.cs
public interface IFooBarService
{
string x { get; }
string y { get; }
}
[Export("FooBarService", typeof(IFooBarService))]
public class FooBarService : IFooBarService
{
string x { get; protected set; }
string y { get; protected set; }
}
Как правильно загрузить x и y в мой сервис? Кроме того, как мне обеспечить, чтобы при этом он не сталкивался ни с чем другим в моем контейнере или чем-то подобным?