本文整理汇总了C#中PluginFinder.Load方法的典型用法代码示例。如果您正苦于以下问题:C# PluginFinder.Load方法的具体用法?C# PluginFinder.Load怎么用?C# PluginFinder.Load使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PluginFinder
的用法示例。
在下文中一共展示了PluginFinder.Load方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LoadPlugin
private static void LoadPlugin(PluginInfo pi, IForwardDestinationHandler ifdh)
{
try
{
// load if not already loaded
if (ifdh == null)
{
PluginFinder pf = new PluginFinder();
ifdh = pf.Load<IForwardDestinationHandler>(pi, ignoreList);
}
if (ifdh != null)
{
// for the 'path' value, we still want to use the userprofile directory no matter where the plugin was loaded from
// the reason is that the 'path' is where plugin settings will be saved, so it needs to be user writable and user-specific
string path = Path.Combine(userForwarderDirectory, Growl.CoreLibrary.PathUtility.GetSafeFolderName(ifdh.Name));
// check to make sure this plugin was not loaded from another directory already
if (!loadedPlugins.ContainsKey(path))
{
loadedPlugins.Add(pi.FolderPath, pi);
if (!loadedPlugins.ContainsKey(path)) loadedPlugins.Add(path, pi); // link by the settings path as well so we can detect duplicate plugins in other folders
loadedPluginsList.Add(pi);
LoadInternal(ifdh, pi.FolderPath, path);
}
else
{
// plugin was not valid
Utility.WriteDebugInfo(String.Format("Forwarder not loaded: '{0}' - Duplicate plugin was already loaded from another folder", pi.FolderPath));
}
}
else
{
// plugin was not valid
Utility.WriteDebugInfo(String.Format("Forwarder not loaded: '{0}' - Does not implement IForwardDestinationHandler interface", pi.FolderPath));
}
}
catch (Exception ex)
{
// suppress any per-plugin loading exceptions
Utility.WriteDebugInfo(String.Format("Forwarder failed to load: '{0}' - {1} - {2}", pi.FolderPath, ex.Message, ex.StackTrace));
}
}