本文整理汇总了C#中IRegistry.RegisterComponent方法的典型用法代码示例。如果您正苦于以下问题:C# IRegistry.RegisterComponent方法的具体用法?C# IRegistry.RegisterComponent怎么用?C# IRegistry.RegisterComponent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IRegistry
的用法示例。
在下文中一共展示了IRegistry.RegisterComponent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RegisterComponents
private static void RegisterComponents(IRegistry registry, IList<PluginData> topologicallySortedPlugins, IList<IPluginDescriptor> pluginDescriptors)
{
for (int i = 0; i < topologicallySortedPlugins.Count; i++)
{
Plugin plugin = topologicallySortedPlugins[i].Plugin;
IPluginDescriptor pluginDescriptor = pluginDescriptors[i];
foreach (Component component in plugin.Components)
{
var serviceDescriptor = registry.Services[component.ServiceId];
if (serviceDescriptor == null)
throw new RuntimeException(string.Format("Could not register component '{0}' of plugin '{1}' because it implements service '{2}' which was not found in the registry.",
component.ComponentId, plugin.PluginId, component.ServiceId));
try
{
var componentRegistration = new ComponentRegistration(pluginDescriptor,
serviceDescriptor, component.ComponentId,
component.ComponentType != null ? new TypeName(component.ComponentType) : null);
if (component.Parameters != null)
componentRegistration.ComponentProperties = component.Parameters.PropertySet;
if (component.Traits != null)
componentRegistration.TraitsProperties = component.Traits.PropertySet;
registry.RegisterComponent(componentRegistration);
}
catch (Exception ex)
{
throw new RuntimeException(string.Format("Could not register component '{0}' of plugin '{1}'.",
component.ComponentId, plugin.PluginId), ex);
}
}
}
}