文字コードを考慮してWebClientでサイトソースを取得する

private async Task<string> GetSiteSource(string url, Uri reffrrer = null)
{
    using (System.Net.WebClient objWebClient = new System.Net.WebClient())
    {
        if(reffrrer != null)
            objWebClient.Headers.Add(HttpRequestHeader.Referer, reffrrer.ToString());

        objWebClient.Headers.Add(HttpRequestHeader.UserAgent, strUserAgent);
        objWebClient.Encoding = System.Text.Encoding.UTF8;
        string strSource = await objWebClient.DownloadStringTaskAsync(url);

        ContentType contentType = new ContentType(objWebClient.ResponseHeaders["Content-Type"]);

        switch(contentType.CharSet.ToLower().Replace("-", ""))
        {
            case "utf8":
                break;

            case "eucjp":
                objWebClient.Encoding = System.Text.Encoding.GetEncoding("euc-jp");
                strSource = await objWebClient.DownloadStringTaskAsync(url);
                break;

            case "shiftjis":
                objWebClient.Encoding = System.Text.Encoding.GetEncoding("shift-jis");
                strSource = await objWebClient.DownloadStringTaskAsync(url);
                break;

            default:
                break;
        }

        return strSource;
    }
}