System.Runtime.Serialization.Formatters.Binary.Converter.FromString C# (CSharp) Method

FromString() static private method

static private FromString ( string value, InternalPrimitiveTypeE code ) : object
value string
code InternalPrimitiveTypeE
return object
        internal static object FromString(string value, InternalPrimitiveTypeE code)
        {
            // InternalPrimitiveTypeE needs to be a primitive type
            Debug.Assert((code != InternalPrimitiveTypeE.Invalid), "[Converter.FromString]!InternalPrimitiveTypeE.Invalid ");
            return code != InternalPrimitiveTypeE.Invalid ?
                Convert.ChangeType(value, ToTypeCode(code), CultureInfo.InvariantCulture) :
                value;
        }
    }

Usage Example

示例#1
0
        private void ParseMember(ParseRecord pr)
        {
            ParseRecord parseRecord = (ParseRecord)this.stack.Peek();

            if (parseRecord != null)
            {
                string str = parseRecord.PRname;
            }
            switch (pr.PRmemberTypeEnum)
            {
            case InternalMemberTypeE.Item:
                this.ParseArrayMember(pr);
                break;

            default:
                if (pr.PRdtType == null && parseRecord.PRobjectInfo.isTyped)
                {
                    pr.PRdtType = parseRecord.PRobjectInfo.GetType(pr.PRname);
                    if (pr.PRdtType != null)
                    {
                        pr.PRdtTypeCode = Converter.ToCode(pr.PRdtType);
                    }
                }
                if (pr.PRmemberValueEnum == InternalMemberValueE.Null)
                {
                    parseRecord.PRobjectInfo.AddValue(pr.PRname, (object)null, ref parseRecord.PRsi, ref parseRecord.PRmemberData);
                    break;
                }
                if (pr.PRmemberValueEnum == InternalMemberValueE.Nested)
                {
                    this.ParseObject(pr);
                    this.stack.Push((object)pr);
                    if (pr.PRobjectInfo != null && pr.PRobjectInfo.objectType != null && pr.PRobjectInfo.objectType.IsValueType)
                    {
                        pr.PRisValueTypeFixup = true;
                        this.ValueFixupStack.Push((object)new ValueFixup(parseRecord.PRnewObj, pr.PRname, parseRecord.PRobjectInfo));
                        break;
                    }
                    parseRecord.PRobjectInfo.AddValue(pr.PRname, pr.PRnewObj, ref parseRecord.PRsi, ref parseRecord.PRmemberData);
                    break;
                }
                if (pr.PRmemberValueEnum == InternalMemberValueE.Reference)
                {
                    object @object = this.m_objectManager.GetObject(pr.PRidRef);
                    if (@object == null)
                    {
                        parseRecord.PRobjectInfo.AddValue(pr.PRname, (object)null, ref parseRecord.PRsi, ref parseRecord.PRmemberData);
                        parseRecord.PRobjectInfo.RecordFixup(parseRecord.PRobjectId, pr.PRname, pr.PRidRef);
                        break;
                    }
                    parseRecord.PRobjectInfo.AddValue(pr.PRname, @object, ref parseRecord.PRsi, ref parseRecord.PRmemberData);
                    break;
                }
                if (pr.PRmemberValueEnum == InternalMemberValueE.InlineValue)
                {
                    if (pr.PRdtType == Converter.typeofString)
                    {
                        this.ParseString(pr, parseRecord);
                        parseRecord.PRobjectInfo.AddValue(pr.PRname, (object)pr.PRvalue, ref parseRecord.PRsi, ref parseRecord.PRmemberData);
                        break;
                    }
                    if (pr.PRdtTypeCode == InternalPrimitiveTypeE.Invalid)
                    {
                        if (pr.PRarrayTypeEnum == InternalArrayTypeE.Base64)
                        {
                            parseRecord.PRobjectInfo.AddValue(pr.PRname, (object)Convert.FromBase64String(pr.PRvalue), ref parseRecord.PRsi, ref parseRecord.PRmemberData);
                            break;
                        }
                        if (pr.PRdtType == Converter.typeofObject)
                        {
                            throw new SerializationException(Environment.GetResourceString("Serialization_TypeMissing", (object)pr.PRname));
                        }
                        this.ParseString(pr, parseRecord);
                        if (pr.PRdtType == Converter.typeofSystemVoid)
                        {
                            parseRecord.PRobjectInfo.AddValue(pr.PRname, (object)pr.PRdtType, ref parseRecord.PRsi, ref parseRecord.PRmemberData);
                            break;
                        }
                        if (!parseRecord.PRobjectInfo.isSi)
                        {
                            break;
                        }
                        parseRecord.PRobjectInfo.AddValue(pr.PRname, (object)pr.PRvalue, ref parseRecord.PRsi, ref parseRecord.PRmemberData);
                        break;
                    }
                    object obj = pr.PRvarValue == null?Converter.FromString(pr.PRvalue, pr.PRdtTypeCode) : pr.PRvarValue;

                    parseRecord.PRobjectInfo.AddValue(pr.PRname, obj, ref parseRecord.PRsi, ref parseRecord.PRmemberData);
                    break;
                }
                this.ParseError(pr, parseRecord);
                break;
            }
        }
All Usage Examples Of System.Runtime.Serialization.Formatters.Binary.Converter::FromString