AvalonStudio.Debugging.Variable.FromDataString C# (CSharp) Method

FromDataString() public static method

public static FromDataString ( string data ) : Variable
data string
return Variable
		public static Variable FromDataString(string data)
		{
			var result = new Variable();

			foreach (var pair in data.ToNameValuePairs())
			{
				switch (pair.Name)
				{
					case "name":
						result.Name = pair.Value;
						break;

					case "arg":
						result.IsArgument = pair.Value == "1";
						break;

					case "type":
						result.Type = pair.Value;
						break;

					case "value":
						result.Value = pair.Value;
						break;

					default:
						throw new NotImplementedException();
				}
			}

			return result;
		}
	}

Usage Example

Example #1
0
        public static Frame FromDataString(string data)
        {
            var result = new Frame();

            if (data[0] != '{')
            {
                throw new Exception("Object expected to begin with '{'");
            }

            var pairs = data.RemoveBraces().ToNameValuePairs();

            foreach (var pair in pairs)
            {
                switch (pair.Name)
                {
                case "addr":
                    result.Address = Convert.ToUInt64(pair.Value.Replace("0x", ""), 16);
                    break;

                case "func":
                    result.Function = pair.Value;
                    break;

                case "args":
                    result.Arguments = new List <Variable>();

                    var arguments = pair.Value.ToArray();

                    foreach (var argument in arguments)
                    {
                        var newArgument = Variable.FromDataString(argument.RemoveBraces());
                        newArgument.IsArgument = true;
                        result.Arguments.Add(newArgument);
                    }
                    break;

                case "file":
                    result.File = pair.Value;
                    break;

                case "fullname":
                    result.FullFileName = pair.Value;
                    break;

                case "line":
                    if (pair.Value != string.Empty)
                    {
                        result.Line = Convert.ToInt32(pair.Value);
                    }
                    break;

                case "level":
                    if (pair.Value != string.Empty)
                    {
                        result.Level = Convert.ToUInt32(pair.Value);
                    }
                    break;
                }
            }

            return(result);
        }