Mercurial > pub > bltoolkit
comparison Demo/WebServices/Client/WebClient/WebOperationCancelledEventArgs.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f990fcb411a9 |
---|---|
1 using System; | |
2 using System.Text; | |
3 using System.Collections; | |
4 | |
5 namespace Demo.WebServices.Client.WebClient | |
6 { | |
7 public class WebOperationCancelledEventArgs : EventArgs | |
8 { | |
9 private readonly string _url; | |
10 public string Url | |
11 { | |
12 get { return _url; } | |
13 } | |
14 | |
15 private readonly string _methodName; | |
16 public string MethodName | |
17 { | |
18 get { return _methodName; } | |
19 } | |
20 | |
21 private readonly object[] _parameters; | |
22 public object[] Parameters | |
23 { | |
24 get { return _parameters; } | |
25 } | |
26 | |
27 public WebOperationCancelledEventArgs(string url, string methodName, object[] parameters) | |
28 { | |
29 _url = url; | |
30 _methodName = methodName; | |
31 _parameters = parameters; | |
32 } | |
33 | |
34 public string Format() | |
35 { | |
36 StringBuilder sb = new StringBuilder(); | |
37 sb | |
38 .Append(Url) | |
39 .Append('/') | |
40 .Append(MethodName) | |
41 .Append('(') | |
42 ; | |
43 | |
44 if (Parameters != null) | |
45 { | |
46 bool first = true; | |
47 | |
48 foreach (object parameter in Parameters) | |
49 { | |
50 if (first) | |
51 first = false; | |
52 else | |
53 sb.Append(", "); | |
54 | |
55 try | |
56 { | |
57 FormatParameter(parameter, sb); | |
58 } | |
59 catch (Exception ex) | |
60 { | |
61 sb.Append(ex.ToString()); | |
62 } | |
63 } | |
64 } | |
65 | |
66 return sb.Append(')').ToString(); | |
67 } | |
68 | |
69 private static void FormatParameter(object parameter, StringBuilder sb) | |
70 { | |
71 if (parameter == null) | |
72 sb.Append("null"); | |
73 else if (parameter is string) | |
74 sb.Append('"').Append((string)parameter).Append('"'); | |
75 else if (parameter is char) | |
76 sb.Append('\'').Append((char)parameter).Append('\''); | |
77 else if (parameter is IEnumerable) | |
78 { | |
79 sb.Append('['); | |
80 bool first = true; | |
81 foreach (object item in (IEnumerable)parameter) | |
82 { | |
83 FormatParameter(item, first? sb: sb.Append(',')); | |
84 first = false; | |
85 } | |
86 sb.Append(']'); | |
87 } | |
88 else | |
89 sb.Append(parameter.ToString()); | |
90 } | |
91 } | |
92 } |