private void ResolveBuiltinConstructor(XmlReader reader, BuiltinTypeConstructor constructor) { try { reader = reader.ReadSubtree(); reader.Read(); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "parameter") { var member = constructor.Add(reader.GetAttribute("type"), reader.GetAttribute("value")); if (!reader.IsEmptyElement) { //member.RawValue = reader.ReadString(); //因为移动框架中的XmlReader不支持ReadString()方法,所以将其改成如下代码 if (reader.Read() && reader.NodeType == XmlNodeType.Text) { member.RawValue = reader.Value; } } } } } finally { if (reader != null) { reader.Close(); } } }
internal Parameter(BuiltinTypeConstructor constructor, string typeName, string rawValue) { if (constructor == null) { throw new ArgumentNullException("constructor"); } _constructor = constructor; _parameterTypeName = typeName; _rawValue = rawValue; _evaluateValueRequired = 0; }
public BuiltinType(Builtin builtin, string typeName) { if (string.IsNullOrWhiteSpace(typeName)) { throw new ArgumentNullException(nameof(typeName)); } _type = null; _builtin = builtin ?? throw new ArgumentNullException(nameof(builtin)); _typeName = typeName.Trim(); _constructor = new BuiltinTypeConstructor(this); }