来自类的cHttpWebResponse继承了WebRequest

时间:2015-03-06 19:12:11

标签: c# httpwebresponse

我正在尝试将一个继承WebRequest的类转换为HttWebRequest(因为我不能直接继承HttpWebRequest)但是我得到了转换无效。知道如何从我的实例中获取HttpWebRequest吗?

这是代码:

static void Main(string[] args)
    {

        WebRequest wr = new WR("bla");
        HttpWebResponse webres = (HttpWebResponse) wr; // this fails
        Console.ReadKey();
    }

    public class WR : WebRequest
    {
        private string bla;
        private Uri url;

        public WR(string x)
        {
            bla = x;
        }

        public override Uri RequestUri
        {
            get { return this.url; }
        }
    }

2 个答案:

答案 0 :(得分:0)

遗产根本无法以这种方式运作。 HttpWebRequest是WebRequest的更具体的版本。由于您只从WebRequest继承,因此您的对象无法满足HttpWebRequest。

如果您确实需要来自HttpWebRequest的某些字段,请尝试composition而不是遗产。根据您的需要,您可以创建一些基本上在 WR 字段和函数中拥有 HttpWebRequest 字段的类。

注意:这个答案考虑到你不能像你所说的那样继承HttpWebRequest。我不知道为什么。如果由于某种原因你意识到你可以从HttpWebRequest继承,你应该。

答案 1 :(得分:-1)

你需要写的是......

HttpWebResponse webres = new HttpWebResponse();