System.UriTemplate.BindByName C# (CSharp) Метод

BindByName() приватный Метод

private BindByName ( int &src, StringBuilder sb, ReadOnlyCollection names, Object nvc, string>.IDictionary dic, bool omitDefaults, bool query ) : void
src int
sb StringBuilder
names ReadOnlyCollection
nvc Object
dic string>.IDictionary
omitDefaults bool
query bool
Результат void
		void BindByName (ref int src, StringBuilder sb, ReadOnlyCollection<string> names, NameValueCollection nvc, IDictionary<string,string> dic, bool omitDefaults, bool query)
		{
			foreach (string name in names) {
				int s = template.IndexOf ('{', src);
				int e = template.IndexOf ('}', s + 1);
#if NET_2_1
				string value = null;
#else
				string value = nvc != null ? nvc [name] : null;
#endif
				if (dic != null)
					dic.TryGetValue (name, out value);
				if (query) {
					if (value != null || (!omitDefaults && Defaults.TryGetValue (name, out value))) {
						sb.Append (template.Substring (src, s - src));
						sb.Append (value);
					}
				} else
					if (value == null && (omitDefaults || !Defaults.TryGetValue(name, out value)))
						throw new ArgumentException(string.Format("The argument name value collection does not contain non-nul vaalue for '{0}'", name), "parameters");
					else {
						sb.Append (template.Substring (src, s - src));
						sb.Append (value);
					}
				src = e + 1;
			}
		}

Same methods

UriTemplate::BindByName ( Uri baseAddress, string>.IDictionary parameters ) : Uri
UriTemplate::BindByName ( Uri baseAddress, string>.IDictionary parameters, bool omitDefaults ) : Uri
UriTemplate::BindByName ( Uri baseAddress, Object parameters ) : Uri
UriTemplate::BindByName ( Uri baseAddress, Object parameters, bool omitDefaults ) : Uri

Usage Example

Пример #1
0
 public string BuildUriString(NancyContext context, string routeName, dynamic parameters)
 {
     var baseUri = new Uri(context.Request.BaseUri().TrimEnd('/'));
       var pathTemplate = AllRoutes.Single(r => r.Name == routeName).Path;
       var uriTemplate = new UriTemplate(pathTemplate, true);
       return uriTemplate.BindByName(baseUri, ToDictionary(parameters ?? new {})).ToString();
 }
All Usage Examples Of System.UriTemplate::BindByName