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


C# IConstructor.ConstructObject方法代码示例

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


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

示例1: ConstructRubyRange

        public static Range ConstructRubyRange(IConstructor/*!*/ ctor, Node node) {
            object begin = null;
            object end = null;
            bool excludeEnd = false;
            ScalarNode scalar = node as ScalarNode;                        
            if (scalar != null) {
                string value = scalar.Value;                
                int dotsIdx;
                if ((dotsIdx = value.IndexOf("...")) != -1) {
                    begin = ParseObject(ctor, value.Substring(0, dotsIdx));                
                    end = ParseObject(ctor, value.Substring(dotsIdx + 3));
                    excludeEnd = true;
                } else if ((dotsIdx = value.IndexOf("..")) != -1) {
                    begin = ParseObject(ctor, value.Substring(0, dotsIdx));
                    end = ParseObject(ctor, value.Substring(dotsIdx + 2));
                } else {
                    throw new ConstructorException("Invalid Range: " + value);
                }
            } else {
                MappingNode mapping = node as MappingNode;
                if (mapping == null) {
                    throw new ConstructorException("Invalid Range: " + node);    
                }
                foreach (KeyValuePair<Node, Node> n in mapping.Nodes) {
                    string key = ctor.ConstructScalar(n.Key).ToString();
                    switch (key) {
                        case "begin":
                            begin = ctor.ConstructObject(n.Value);
                            break;
                        case "end":
                            end = ctor.ConstructObject(n.Value);
                            break;
                        case "excl":
                            TryConstructYamlBool(ctor, n.Value, out excludeEnd);
                            break;
                        default:
                            throw new ConstructorException(string.Format("'{0}' is not allowed as an instance variable name for class Range", key));
                    }
                }                
            }

            var comparisonStorage = new BinaryOpStorage();
            return new Range(comparisonStorage, ctor.GlobalScope.Context, begin, end, excludeEnd);            
        }
开发者ID:bclubb,项目名称:ironruby,代码行数:44,代码来源:RubyConstructor.cs

示例2: ParseObject

 private static object ParseObject(IConstructor ctor, string value) {
     Composer composer = RubyYaml.MakeComposer(new StringReader(value));
     if (composer.CheckNode()) {
         return ctor.ConstructObject(composer.GetNode());
     } else {
         throw new ConstructorException("Invalid YAML element: " + value);
     }
 }
开发者ID:bclubb,项目名称:ironruby,代码行数:8,代码来源:RubyConstructor.cs


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