本文整理汇总了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);
}
示例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);
}
}