この回答Get the subdomain from a URLに基づいて、私は code.google.com/p/domainname-parser/ を使用しようとしています。これは publicsuffix.org からパブリック サフィックス リストを使用して、Cookie コレクションを管理するためのサブドメインとドメインを取得します。
現時点では、Domainname-parser は publicsuffix.org のリストを実装するインターネットで見つけた唯一の .NET コードです。
Domainname-parser を使用するために、次のことができるようにソース コードを変更したいと考えています。
- .NET 2.0 での使用
- Uri オブジェクトを受け入れて、ホストをサブドメイン、ドメイン、および TLD に解析します。
- LastModified が変更された場合、WebRequest と WebResponse を使用して、publicsuffix.org から最新のリストを自動的にダウンロードします。
そのため、より使いやすくなり、常に更新されます。(2) と (3) は問題ありませんが、(1) が今の私の焦点です。
現在のドメイン名パーサーは v1.0 で、コードで Linq を使用する .NET 3.5 を使用するようにビルドされています。.NET 2.0 と互換性を持たせるには、Linq コードを非 Linq に変換する必要があります。これにより、Public Suffix List のルールを理解することができます。それが通常、ワイルドカード、および例外ルールです。ただし、Linq と、それを通常の方法に戻す方法についての知識はありません。
コンバーター ツールは便利かもしれませんが、1 行ずつ確認して変更する方が良いでしょう。
今私の質問は、どうすればそれを変換できますか? たとえば、DomainNames クラスの FindMatchingTLDRule メソッドからのコード:
// Try to match an wildcard rule:
var wildcardresults = from test in TLDRulesCache.Instance.TLDRuleList
where
test.Name.Equals(checkAgainst, StringComparison.InvariantCultureIgnoreCase)
&&
test.Type == TLDRule.RuleType.Wildcard
select
test;
そしてこれも:
var results = from match in ruleMatches
orderby match.Name.Length descending
select match;
従うべき簡単なガイドラインは何ですか? または、上記の 1 つの文を .NET 2.0 の通常の C# コードに変換する無料のツールはありますか?
コレクションを扱う方法だけで、データベースは関係ないと思います。
また、ドメイン名パーサーの所有者に連絡してコードを改善し、これを解決する手助けをしようとしています。
ありがとう
CallMeLaNN