あなたはURLを解析するためにUriTemplateを使用することができます。C#.NET UriTemplateマッチホワイトリストまたはプールからURLまたはサーバー
私はローカルlocalhost:29001
に、私は特定のUri
するホストを設定し、Iれるこのコードを持っていますそれは私がこの
var absoluteUri = HttpContext.Current.Request.Url.AbsoluteUri;
そのラインを持っている私の実際のコードでMatch
ある場合にチェック
しかし、本質的にこれは、コードが実行中のC#のように見えるものです。
var host = new Uri("http://localhost:29001");
var apiTemplate = new UriTemplate("{api}/{*params}", true);
var match = apiTemplate.Match(host, new Uri("http://localhost:29001/GetQAByDateTime/date/2-15-2017/time/11"));
if (match == null)
throw new ArgumentException();
Console.WriteLine(match.BoundVariables["api"]); // GetQAByDateTime
Console.WriteLine(match.BoundVariables["params"]); // date/2-15-2017/time/11
だから基本的に私はhardcode
にしたくないhost
var host = new Uri("http://localhost:29001");
確かに、私はHttpContext
からサーバ名を取得することができますが、ポイントは何ですか?
localhost
localhost:290001
https://myserver.com
https://myStagingServer/website
etc..
これらのプールで私はどのように一致させることができますか?
私はlinqpadを使用していました。私は 'var match'が' UriTemplateMatch'であり、どのように複雑なオブジェクトが役に立つのか分かります。しかし、私は 'var host = new Uri(" http:// blahblahliterally ")'を変更することができます。同じ結果が得られますので、 '.Match'が実際にやっていることを理解できません –
後半は申し訳ありません。 – Xiaoy312