internal Parameter(BuiltinTypeConstructor constructor, string typeName, string rawValue)
            {
                if (constructor == null)
                {
                    throw new ArgumentNullException("constructor");
                }

                _constructor           = constructor;
                _parameterTypeName     = typeName;
                _rawValue              = rawValue;
                _evaluateValueRequired = 0;
            }
Beispiel #2
0
        public BuiltinType(Builtin builtin, string typeName)
        {
            if (builtin == null)
            {
                throw new ArgumentNullException("builtin");
            }

            if (string.IsNullOrWhiteSpace(typeName))
            {
                throw new ArgumentNullException("typeName");
            }

            _type        = null;
            _builtin     = builtin;
            _typeName    = typeName.Trim();
            _constructor = new BuiltinTypeConstructor(this);
        }
Beispiel #3
0
        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)
                {
#if !CORE_CLR
                    reader.Close();
#else
                    reader.Dispose();
#endif
                }
            }
        }