MEF插件界面配置
public T GetConfig<T>(string sectionName) where T : ConfigurationSection
{
try
{
Assembly assembly = typeof(T).Assembly;
string directory = Path.GetDirectoryName(assembly.CodeBase);
string filename = Path.GetFileName(assembly.CodeBase);
string assemblyPath = Path.Combine(directory, filename);
var config = ConfigurationManager.OpenExeConfiguration(new Uri(assemblyPath).LocalPath);
return config.GetSection(sectionName) as T; ;
}
catch (Exception ex)
{
return null;
}
}
若一些公共的dll既在主文件目录又在插件目录则需要删除插件目录中的,在主程序配置文件中加入
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Inspectors"/>
</assemblyBinding>
</runtime>
浙公网安备 33010602011771号