示例#1
0
        public override string ToString()
        {
            using (var code = new Microsoft.CSharp.CSharpCodeProvider())
            {
                var hasParameters    = NamedParameters.Count > 0 || Parameters.Count > 0;
                var parametersString = new StringBuilder();
                if (hasParameters && Parameters.Count > 0)
                {
                    Parameters.TakeWhile(x => Parameters.Last() != x)
                    .ToList()
                    .ForEach(x => parametersString.Append(string.Format("{0}, ", x)));
                    parametersString.Append(Parameters.Last());
                }
                if (hasParameters && NamedParameters.Count > 0)
                {
                    NamedParameters.TakeWhile(x => NamedParameters.Last() != x)
                    .ToList()
                    .ForEach(x => parametersString.Append(string.Format("{0} = {1}, ", x.Item1, x.Item2)));
                    parametersString.Append(string.Format("{0} = {1}", NamedParameters.Last().Item1,
                                                          NamedParameters.Last().Item2));
                }

                var retval = string.Format("[{0}{1}]", AttributeType.Name,
                                           hasParameters ? string.Format("({0})", parametersString) : "");
                return(retval);
            }
        }