当前位置: 首页>>代码示例>>C#>>正文


C# PluginManager.PluginItemMetadata类代码示例

本文整理汇总了C#中MediaPortal.Common.PluginManager.PluginItemMetadata的典型用法代码示例。如果您正苦于以下问题:C# PluginItemMetadata类的具体用法?C# PluginItemMetadata怎么用?C# PluginItemMetadata使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


PluginItemMetadata类属于MediaPortal.Common.PluginManager命名空间,在下文中一共展示了PluginItemMetadata类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: BuildItem

 public object BuildItem(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   BuilderHelper.CheckParameter("ServiceClassName", itemData);
   string serviceClassName = itemData.Attributes["ServiceClassName"];
   object serviceInstance = plugin.InstantiatePluginObject(serviceClassName);
   if (serviceInstance == null)
   {
     ServiceRegistration.Get<ILogger>().Warn("ServiceBuilder: Could not instantiate service class '{0}' in plugin '{1}' (id: '{2}')",
         serviceClassName, itemData.PluginRuntime.Metadata.Name, itemData.PluginRuntime.Metadata.PluginId);
     return null;
   }
   string registrationClassAssembly;
   if (!itemData.Attributes.TryGetValue("RegistrationClassAssembly", out registrationClassAssembly))
     registrationClassAssembly = null;
   string registrationClassName;
   if (!itemData.Attributes.TryGetValue("RegistrationClassName", out registrationClassName))
     registrationClassName = null;
   Type registrationType;
   if (string.IsNullOrEmpty(registrationClassName))
     registrationType = serviceInstance.GetType();
   else
     registrationType = string.IsNullOrEmpty(registrationClassAssembly) ? plugin.GetPluginType(registrationClassName) :
         Type.GetType(registrationClassName + ", " + registrationClassAssembly);
   if (registrationType == null)
   {
     ServiceRegistration.Get<ILogger>().Warn("ServiceBuilder: Could not instantiate service registration type '{0}' (Assembly: '{1}') in plugin '{2}' (id: '{3}')",
         registrationClassName, registrationClassAssembly, itemData.PluginRuntime.Metadata.Name, itemData.PluginRuntime.Metadata.PluginId);
     return null;
   }
   return new ServiceItem(registrationType, serviceInstance);
 }
开发者ID:davinx,项目名称:MediaPortal-2,代码行数:31,代码来源:ServiceBuilder.cs

示例2: CheckParameter

 public static void CheckParameter(string parameterName, PluginItemMetadata itemData)
 {
   if (!itemData.Attributes.ContainsKey(parameterName))
     throw new PluginItemBuildException(
         "'{0}' item at registration location '{1}' needs to specify the '{2}' parameter",
             itemData.BuilderName, itemData.RegistrationLocation, parameterName);
 }
开发者ID:joconno4,项目名称:MediaPortal-2,代码行数:7,代码来源:BuilderHelper.cs

示例3: BuildItem

 public object BuildItem(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   BuilderHelper.CheckParameter("ClassName", itemData);
   BuilderHelper.CheckParameter("ProviderName", itemData);
   BuilderHelper.CheckParameter("Priority", itemData);
   return new ThumbnailProviderRegistration(plugin.GetPluginType(itemData.Attributes["ClassName"]), itemData.Id, itemData.Attributes["ProviderName"], itemData.Attributes["Priority"]);
 }
开发者ID:chekiI,项目名称:MediaPortal-2,代码行数:7,代码来源:ThumbnailProviderBuilder.cs

示例4: BuildSection

 protected static ConfigSectionMetadata BuildSection(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   string location = ConfigBaseMetadata.ConcatLocations(itemData.RegistrationLocation, itemData.Id);
   string text = null;
   string iconSmallPath = null;
   string iconLargePath = null;
   foreach (KeyValuePair<string, string> attr in itemData.Attributes)
   {
     switch (attr.Key)
     {
       case "Text":
         text = attr.Value;
         break;
       case "IconSmallPath":
         iconSmallPath = attr.Value;
         break;
       case "IconLargePath":
         iconLargePath = attr.Value;
         break;
       default:
         throw new ArgumentException("'ConfigSection' builder doesn't define an attribute '" + attr.Key + "'");
     }
   }
   if (text == null)
     throw new ArgumentException("'ConfigSection' item needs an attribute 'Text'");
   return new ConfigSectionMetadata(location, text,
                                    plugin.Metadata.GetAbsolutePath(iconSmallPath),
                                    plugin.Metadata.GetAbsolutePath(iconLargePath));
 }
开发者ID:chekiI,项目名称:MediaPortal-2,代码行数:29,代码来源:ConfigBuilder.cs

示例5: BuildItem

 public object BuildItem(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   BuilderHelper.CheckParameter("ClassName", itemData);
   BuilderHelper.CheckParameter("Caption", itemData);
   BuilderHelper.CheckParameter("Sort", itemData);
   return new MediaItemActionExtension(plugin.GetPluginType(itemData.Attributes["ClassName"]), itemData.Attributes["Caption"], itemData.Attributes["Sort"], itemData.Id);
 }
开发者ID:chekiI,项目名称:MediaPortal-2,代码行数:7,代码来源:MediaItemActionBuilder.cs

示例6: BuildItem

 public object BuildItem(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   BuilderHelper.CheckParameter("Type", itemData);
   BuilderHelper.CheckParameter("Directory", itemData);
   return new PluginResource(
       (PluginResourceType) Enum.Parse(typeof (PluginResourceType), itemData.Attributes["Type"]),
       plugin.Metadata.GetAbsolutePath(itemData.Attributes["Directory"]));
 }
开发者ID:davinx,项目名称:MediaPortal-2,代码行数:8,代码来源:ResourceBuilder.cs

示例7: RevokeItem

 public void RevokeItem(object item, PluginItemMetadata itemData, PluginRuntime plugin)
 {
   BackgroundType type;
   string typeName = GetBackgroundAndType(itemData.Attributes, out type);
   switch (type)
   {
     case BackgroundType.Manager:
       plugin.RevokePluginObject(typeName);
       break;
   }
 }
开发者ID:davinx,项目名称:MediaPortal-2,代码行数:11,代码来源:BackgroundBuilder.cs

示例8: BuildItem

 public object BuildItem(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   BackgroundType type;
   string value = GetBackgroundAndType(itemData.Attributes, out type);
   switch (type)
   {
     case BackgroundType.Static:
       return new StaticBackgroundManager(value);
     case BackgroundType.Manager:
       // The cast is necessary here to ensure the returned instance is an IBackgroundManager
       return (IBackgroundManager) plugin.InstantiatePluginObject(value);
     default:
       throw new NotImplementedException(string.Format(
           "Background builder: Background type '{0}' is not implemented", type));
   }
 }
开发者ID:davinx,项目名称:MediaPortal-2,代码行数:16,代码来源:BackgroundBuilder.cs

示例9: BuildItem

    public object BuildItem(PluginItemMetadata itemData, PluginRuntime plugin)
    {
      BuilderHelper.CheckParameter("ClassName", itemData);
      BuilderHelper.CheckParameter("Filter", itemData);
      // Support for simplified escaping inside XML tag
      string filter = itemData.Attributes["Filter"].Replace("{", "<").Replace("}", ">");
      FilterWrapper wrapper;

      if (_serializer == null)
        _serializer = new XmlSerializer(typeof(FilterWrapper));

      using (var reader = new StringReader(filter))
        wrapper = (FilterWrapper)_serializer.Deserialize(reader);

      return new MediaNavigationFilter(itemData.Attributes["ClassName"], wrapper.Filter);
    }
开发者ID:aspik,项目名称:MediaPortal-2,代码行数:16,代码来源:MediaNavigationFilterBuilder.cs

示例10: BuildGroup

 protected static ConfigGroupMetadata BuildGroup(
   PluginItemMetadata itemData, PluginRuntime plugin)
 {
   string location = ConfigBaseMetadata.ConcatLocations(itemData.RegistrationLocation, itemData.Id);
   string text = null;
   foreach (KeyValuePair<string, string> attr in itemData.Attributes)
   {
     switch (attr.Key)
     {
       case "Text":
         text = attr.Value;
         break;
       default:
         throw new ArgumentException("'ConfigGroup' builder doesn't define an attribute '" + attr.Key + "'");
     }
   }
   if (text == null)
     throw new ArgumentException("'ConfigGroup' item needs an attribute 'Text'");
   return new ConfigGroupMetadata(location, text);
 }
开发者ID:chekiI,项目名称:MediaPortal-2,代码行数:20,代码来源:ConfigBuilder.cs

示例11: BuildWorkflowState

 protected WorkflowState BuildWorkflowState(PluginItemMetadata itemData)
 {
   IDictionary<string, string> attributes = itemData.Attributes;
   Guid id = Guid.Empty;
   try
   {
     string name;
     string displayLabel;
     bool isTemporary = false;
     string mainScreen = null;
     bool inheritMenu = false;
     Guid? workflowModelId = null;
     if (string.IsNullOrEmpty(itemData.Id))
       throw new ArgumentException(string.Format("WorkflowState: Id must be specified"));
     id = new Guid(itemData.Id);
     if (!attributes.TryGetValue("Name", out name))
       throw new ArgumentException(string.Format("WorkflowState with id '{0}': 'Name' attribute missing", id));
     if (!attributes.TryGetValue("DisplayLabel", out displayLabel))
       throw new ArgumentException(string.Format("WorkflowState with id '{0}': 'DisplayLabel' attribute missing", id));
     string tmpStr;
     if (attributes.TryGetValue("WorkflowModel", out tmpStr))
       workflowModelId = new Guid(tmpStr);
     if (!attributes.TryGetValue("MainScreen", out mainScreen))
     {
       mainScreen = null;
       if (workflowModelId == null)
         throw new ArgumentException(string.Format("WorkflowState '{0}': Either 'WorkflowModel' or 'MainScreen' atrribute must be specified", name));
     }
     if (attributes.TryGetValue("Temporary", out tmpStr) && !bool.TryParse(tmpStr, out isTemporary))
       throw new ArgumentException("'Temporary' attribute has to be of type bool");
     if (attributes.TryGetValue("InheritMenu", out tmpStr) && !bool.TryParse(tmpStr, out inheritMenu))
       throw new ArgumentException("'InheritMenu' attribute has to be of type bool");
     return new WorkflowState(id, name, displayLabel, isTemporary, mainScreen, inheritMenu, false,
         workflowModelId, WorkflowType.Workflow);
   }
   catch (Exception e)
   {
     ServiceRegistration.Get<ILogger>().Error("WorkflowStateBuilder: Workflow state '{0}' cannot be built", e, id);
     return null;
   }
 }
开发者ID:HAF-Blade,项目名称:MediaPortal-2,代码行数:41,代码来源:WorkflowStateBuilder.cs

示例12: RegisterItem

 /// <summary>
 /// Registers the specified plugin item in the plugin tree.
 /// </summary>
 /// <param name="itemMetadata">Metadata structure of the item to register.</param>
 /// <returns><c>true</c>, if the plugin item could be registered, <c>false</c>,
 /// if the item already existed and <see cref="PluginItemMetadata.IsRedundant"/> is specified.</returns>
 /// <exception cref="ArgumentException">If there is already an item registered at the registration
 /// location and the <see cref="PluginItemMetadata.IsRedundant"/> flag is not set.</exception>
 internal bool RegisterItem(PluginItemMetadata itemMetadata)
 {
   lock (_syncObj)
   {
     IRegistryNode node = GetRegistryNode(itemMetadata.RegistrationLocation, true);
     itemMetadata.PluginRuntime = this;
     if (node.Items != null && node.Items.ContainsKey(itemMetadata.Id))
       if (itemMetadata.IsRedundant)
       {
         PluginItemRegistration itemRegistration = (PluginItemRegistration) node.Items[itemMetadata.Id];
         itemRegistration.AdditionalRedundantItemsMetadata.Add(itemMetadata);
         return false;
       }
       else
         throw new ArgumentException(string.Format("At location '{0}', a plugin item with id '{1}' is already registered",
             itemMetadata.RegistrationLocation, itemMetadata.Id));
     PluginItemRegistration resultItemRegistration = new PluginItemRegistration(itemMetadata);
     node.AddItem(itemMetadata.Id, resultItemRegistration);
     _itemRegistrations.Add(itemMetadata, resultItemRegistration);
   }
   return true;
 }
开发者ID:HAF-Blade,项目名称:MediaPortal-2,代码行数:30,代码来源:PluginRuntime.cs

示例13: NeedsPluginActive

 public bool NeedsPluginActive(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   BackgroundType type;
   string value = GetBackgroundAndType(itemData.Attributes, out type);
   if (type == BackgroundType.Static)
     return false;
   if (type == BackgroundType.Manager)
     return true;
   throw new NotImplementedException(string.Format(
       "Background builder: Background type '{0}' is not implemented", type));
 }
开发者ID:davinx,项目名称:MediaPortal-2,代码行数:11,代码来源:BackgroundBuilder.cs

示例14: NeedsPluginActive

 public bool NeedsPluginActive(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   return itemData.BuilderName != "ConfigSection" && itemData.BuilderName != "ConfigGroup";
 }
开发者ID:chekiI,项目名称:MediaPortal-2,代码行数:4,代码来源:ConfigBuilder.cs

示例15: BuildItem

 public object BuildItem(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   BuilderHelper.CheckParameter("MediaItemAspectTypeId", itemData);
   return new MIATypeRegistration { MediaItemAspectTypeId = new Guid(itemData.Attributes["MediaItemAspectTypeId"]) };
 }
开发者ID:HAF-Blade,项目名称:MediaPortal-2,代码行数:5,代码来源:MIATypeRegistrationBuilder.cs


注:本文中的MediaPortal.Common.PluginManager.PluginItemMetadata类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。