示例#1
0
            internal static SeperatedParameter FromString(string attribute)
            {
                var seperatedAttribute = new SeperatedParameter();
                var split = attribute.Split(Characters.EqualitySign);

                seperatedAttribute.Value = split[1].TrimQuotesAndWhiteSpaces();
                var innerSplit = split[0].Split(Characters.Asterisk);

                seperatedAttribute.Name  = innerSplit[0].TrimQuotesAndWhiteSpaces();
                seperatedAttribute.Index = Int32.Parse(innerSplit[1]);
                return(seperatedAttribute);
            }
示例#2
0
        private void ParseRemainder(string tail)
        {
            var splitsy = tail.Split(Characters.Semicolon);

            if (splitsy.Length == 1)
            {
                Value = tail;
                return;
            }

            Value = splitsy[0];
            var seperatedParameters = new List <SeperatedParameter>();

            for (var i = 1; i <= splitsy.Length - 1; i++)
            {
                var attribute = splitsy[i];
                if (attribute.IsSeperatedAttribute())
                {
                    var seperatedParameter = SeperatedParameter.FromString(attribute);
                    seperatedParameters.Add(seperatedParameter);
                    continue;
                }

                KeyValuePair <string, string> parameter;
                var success = Parameter.TryParse(attribute, out parameter);
                if (success)
                {
                    var key   = parameter.Key;
                    var value = parameter.Value;
                    if (!Parameters.ContainsKey(key))
                    {
                        Parameters.Add(key, value);
                    }
                    else
                    {
                        Parameters[key] = value;
                    }
                }
                else
                {
                    var message = string.Format("Param skipped: {0}", attribute);
                    Debug.WriteLine(message);
                }
            }

            if (seperatedParameters.Count > 0)
            {
                var mergedParameters = MergeSeperatedParameters(seperatedParameters);
                Parameters.AddRange(mergedParameters);
            }
        }