public interface IPlugin
{
void Process();
string Name { get; }
string Description { get; }
}
public partial class App : Application
{
[Import(typeof(IPlugin))]
public IPlugin plugin;
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
string plugins = System.IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
"WPFAPP", "plugins");
if (!Directory.Exists(plugins))
{
Directory.CreateDirectory(plugins);
}
var catalog = new DirectoryCatalog(plugins);
try
{
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
}
catch (Exception ex)
{
Console.WriteLine($"ex: {ex}");
}
}
}
public interface IPlugin
{
void Process();
string Name { get; }
string Description { get; }
}
public partial class App : Application
{
[Import(typeof(IPlugin))]
public IPlugin plugin;
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
string plugins = System.IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
"WPFAPP", "plugins");
if (!Directory.Exists(plugins))
{
Directory.CreateDirectory(plugins);
}
var catalog = new DirectoryCatalog(plugins);
try
{
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
}
catch (Exception ex)
{
Console.WriteLine($"ex: {ex}");
}
}
}