示例#1
0
        public static void AddPluginsFromAssembly(this IAppHost appHost, params Assembly[] assembliesWithPlugins)
        {
            foreach (Assembly assembly in assembliesWithPlugins)
            {
                var pluginTypes =
                    from t in assembly.GetExportedTypes()
                    where t.GetInterfaces().Any(x => x == typeof(IPlugin))
                    select t;

                foreach (var pluginType in pluginTypes)
                {
                    try
                    {
                        var plugin = pluginType.CreateInstance() as IPlugin;
                        if (plugin != null)
                        {
                            EndpointHost.AddPlugin(plugin);
                        }
                    }
                    catch (Exception ex)
                    {
                        log.Error("Error adding new Plugin " + pluginType.Name, ex);
                    }
                }
            }
        }
示例#2
0
 public static void Start()
 {
     EndpointHost.AddPlugin(new ProtoBufFormat());
 }