• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# PluginManager.PluginItemMetadata类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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


示例16: RevokeItem

 public void RevokeItem(object item, PluginItemMetadata itemData, PluginRuntime plugin)
 {
   // Noting to do
 }
开发者ID:aspik,项目名称:MediaPortal-2,代码行数:4,代码来源:MediaNavigationFilterBuilder.cs


示例17: BuildItem

 public object BuildItem(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   if (itemData.BuilderName == "WorkflowState")
     return BuildWorkflowState(itemData);
   if (itemData.BuilderName == "DialogState")
     return BuildDialogState(itemData);
   return null;
 }
开发者ID:HAF-Blade,项目名称:MediaPortal-2,代码行数:8,代码来源:WorkflowStateBuilder.cs


示例18: RevokeItem

 public void RevokeItem(object item, PluginItemMetadata itemData, PluginRuntime plugin)
 {
   if (item == null)
     return;
   plugin.RevokePluginObject(item.GetType().FullName);
 }
开发者ID:davinx,项目名称:MediaPortal-2,代码行数:6,代码来源:InstanceBuilder.cs


示例19: BuildSetting

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


示例20: BuildItem

 public object BuildItem(PluginItemMetadata itemData, PluginRuntime plugin)
 {
   BuilderHelper.CheckParameter("ClassName", itemData);
   return plugin.InstantiatePluginObject(itemData.Attributes["ClassName"]);
 }
开发者ID:davinx,项目名称:MediaPortal-2,代码行数:5,代码来源:InstanceBuilder.cs



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# PluginManager.PluginRuntime类代码示例发布时间:2022-05-26
下一篇:
C# Messaging.SystemMessage类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap