public override bool Deserialise(TlvReader reader)
        {
            bool result = false;

            while (reader.Read())
            {
                if (reader.TlvRecord.TypeIdentifier == TTlvTypeIdentifier.ObjectInstance)
                {
                    if (string.Compare(this.Name, reader.TlvRecord.Identifier.ToString()) != 0)
                    {
                        this.Name = reader.TlvRecord.Identifier.ToString();
                    }
                    reader = new TlvReader(reader.TlvRecord.Value);
                }
                else if ((reader.TlvRecord.TypeIdentifier != TTlvTypeIdentifier.ObjectInstance) && (reader.TlvRecord.TypeIdentifier != TTlvTypeIdentifier.NotSet))
                {
                    switch ((ResourceID)reader.TlvRecord.Identifier)
                    {
                    case ResourceID.NetworkBearer:
                        this.NetworkBearer = reader.TlvRecord.ValueAsInt64();
                        result             = true;
                        break;

                    case ResourceID.AvailableNetworkBearers:
                        this.AvailableNetworkBearers = IntegerResources.Deserialise(reader);
                        result = true;
                        break;

                    case ResourceID.RadioSignalStrength:
                        this.RadioSignalStrength = reader.TlvRecord.ValueAsInt64();
                        result = true;
                        break;

                    case ResourceID.LinkQuality:
                        this.LinkQuality = reader.TlvRecord.ValueAsInt64();
                        result           = true;
                        break;

                    case ResourceID.IPAddresses:
                        this.IPAddresses = StringResources.Deserialise(reader);
                        result           = true;
                        break;

                    case ResourceID.RouterIPAddresses:
                        this.RouterIPAddresses = StringResources.Deserialise(reader);
                        result = true;
                        break;

                    case ResourceID.LinkUtilization:
                        this.LinkUtilization = reader.TlvRecord.ValueAsInt64();
                        result = true;
                        break;

                    case ResourceID.APNs:
                        this.APNs = StringResources.Deserialise(reader);
                        result    = true;
                        break;

                    case ResourceID.CellID:
                        this.CellID = reader.TlvRecord.ValueAsInt64();
                        result      = true;
                        break;

                    case ResourceID.SMNC:
                        this.SMNC = reader.TlvRecord.ValueAsInt64();
                        result    = true;
                        break;

                    case ResourceID.SMCC:
                        this.SMCC = reader.TlvRecord.ValueAsInt64();
                        result    = true;
                        break;

                    default:
                        break;
                    }
                }
            }
            return(result);
        }
        public override bool Deserialise(TlvReader reader)
        {
            bool result = false;

            while (reader.Read())
            {
                if (reader.TlvRecord.TypeIdentifier == TTlvTypeIdentifier.ObjectInstance)
                {
                    if (string.Compare(this.Name, reader.TlvRecord.Identifier.ToString()) != 0)
                    {
                        this.Name = reader.TlvRecord.Identifier.ToString();
                    }
                    reader = new TlvReader(reader.TlvRecord.Value);
                }
                else if ((reader.TlvRecord.TypeIdentifier != TTlvTypeIdentifier.ObjectInstance) && (reader.TlvRecord.TypeIdentifier != TTlvTypeIdentifier.NotSet))
                {
                    switch ((ResourceID)reader.TlvRecord.Identifier)
                    {
                    case ResourceID.CommandID:
                        this.CommandID = reader.TlvRecord.Value;
                        result         = true;
                        break;

                    case ResourceID.CommandTypeID:
                        this.CommandTypeID = reader.TlvRecord.ValueAsString();
                        result             = true;
                        break;

                    case ResourceID.Status:
                        this.Status = reader.TlvRecord.ValueAsInt64();
                        result      = true;
                        break;

                    case ResourceID.StatusCode:
                        this.StatusCode = reader.TlvRecord.ValueAsString();
                        result          = true;
                        break;

                    case ResourceID.ParameterName:
                        this.ParameterName = StringResources.Deserialise(reader);
                        result             = true;
                        break;

                    case ResourceID.ParameterValue:
                        this.ParameterValue = StringResources.Deserialise(reader);
                        result = true;
                        break;

                    case ResourceID.ResultContentType:
                        this.ResultContentType = reader.TlvRecord.ValueAsString();
                        result = true;
                        break;

                    case ResourceID.ResultContent:
                        this.ResultContent = reader.TlvRecord.ValueAsString();
                        result             = true;
                        break;

                    case ResourceID.ErrorContentType:
                        this.ErrorContentType = reader.TlvRecord.ValueAsString();
                        result = true;
                        break;

                    case ResourceID.ErrorContent:
                        this.ErrorContent = reader.TlvRecord.ValueAsString();
                        result            = true;
                        break;

                    default:
                        break;
                    }
                }
            }
            return(result);
        }