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


C# INodeFactory.GetNodeValue方法代码示例

本文整理汇总了C#中INodeFactory.GetNodeValue方法的典型用法代码示例。如果您正苦于以下问题:C# INodeFactory.GetNodeValue方法的具体用法?C# INodeFactory.GetNodeValue怎么用?C# INodeFactory.GetNodeValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在INodeFactory的用法示例。


在下文中一共展示了INodeFactory.GetNodeValue方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetProperty

        void GetProperty(string path, INodeFactory factory, Collection<string> providerSpecificPickList)
        {
            var node = factory.GetNodeValue();
            PSObject values = null;

            if (null == providerSpecificPickList || 0 == providerSpecificPickList.Count)
            {
                values = PSObject.AsPSObject(node.Item);
            }
            else
            {
                values = new PSObject();
                var value = node.Item;
                var propDescs = TypeDescriptor.GetProperties(value);
                var props = (from PropertyDescriptor prop in propDescs
                             where (providerSpecificPickList.Contains(prop.Name,
                                                                      StringComparer.InvariantCultureIgnoreCase))
                             select prop);

                props.ToList().ForEach(p =>
                                           {
                                               var iv = p.GetValue(value);
                                               if (null != iv)
                                               {
                                                   values.Properties.Add(new PSNoteProperty(p.Name, p.GetValue(value)));
                                               }
                                           });
            }
            WritePropertyObject(values, path);
        }
开发者ID:modulexcite,项目名称:EntityShell,代码行数:30,代码来源:Provider.cs

示例2: WritePathNode

        private void WritePathNode(string nodeContainerPath, INodeFactory factory)
        {
            var value = factory.GetNodeValue();
            if (null == value)
            {
                return;
            }

            PSObject pso = PSObject.AsPSObject(value.Item);
            pso.Properties.Add(new PSNoteProperty(ItemModePropertyName, factory.ItemMode));
            WriteItemObject(pso, nodeContainerPath, value.IsCollection);
        }
开发者ID:modulexcite,项目名称:EntityShell,代码行数:12,代码来源:Provider.cs

示例3: WritePathNode

        private void WritePathNode(string nodeContainerPath, INodeFactory factory)
        {
            var value = factory.GetNodeValue();
            if (null == value)
            {
                return;
            }

            nodeContainerPath = SessionState.Path.GetUnresolvedProviderPathFromPSPath(nodeContainerPath);
            PSObject pso = PSObject.AsPSObject(value.Item);
            pso.Properties.Add(new PSNoteProperty(ItemModePropertyName, factory.ItemMode));
            WriteItemObject(pso, nodeContainerPath, value.IsCollection);
        }
开发者ID:beefarino,项目名称:bips,代码行数:13,代码来源:Provider.cs

示例4: SetProperty

        void SetProperty(string path, INodeFactory factory, PSObject propertyValue)
        {
            var node = factory.GetNodeValue();
            var value = node.Item;
            var propDescs = TypeDescriptor.GetProperties(value);
            var psoDesc = propertyValue.Properties;
            var props = (from PropertyDescriptor prop in propDescs
                         let psod = (from pso in psoDesc
                                     where StringComparer.InvariantCultureIgnoreCase.Equals(pso.Name, prop.Name)
                                     select pso).FirstOrDefault()
                         where null != psod
                         select new {PSProperty = psod, Property = prop});

            props.ToList().ForEach(p => p.Property.SetValue(value, p.PSProperty.Value));
        }
开发者ID:modulexcite,项目名称:EntityShell,代码行数:15,代码来源:Provider.cs

示例5: WriteChildItem

 private void WriteChildItem(string path, bool recurse, INodeFactory child)
 {
     try
     {
         var i = child.GetNodeValue();
         if (null == i)
         {
             return;
         }
         var childPath = MakePath(path, i.Name);
         WritePathNode(childPath, child);
         if (recurse)
         {
             var context = CreateContext(path, recurse);
             var kids = child.GetNodeChildren(context);
             WriteChildItem(childPath, recurse, kids);
         }
     }
     catch (PipelineStoppedException)
     {
         throw;
     }
     catch (Exception e)
     {
         WriteDebug("An exception was raised while writing child items: " + e.ToString());
     }
 }
开发者ID:beefarino,项目名称:bips,代码行数:27,代码来源:Provider.cs


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