你不能通过HttpWebRequest继承(如果你不想调用序列化构造函数),但是你可以通过组合和委托,以及通过WebRequest的继承(我不确定是否会为你做,但是在功能上它非常相似).WebRequest有一个默认构造函数.
在这种情况下,你不能让类'be'成为一个HttpWebRequest(就像在一个is-a关系中),因为你不能从它扩展,但它将是一个WebRequest,这应该足够了.
您可以编写一个继承自WebRequest的类,该类具有WebRequest类型的实例成员,创建HttpWebRequest并在新类型的构造函数中分配实例成员,并委托对该引用的所有调用(类似于装饰器模式):
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; namespace ClassLibrary1 { public class MyHttpWebRequest : WebRequest { private WebRequest request; public MyHttpWebRequest(string uri) { request = HttpWebRequest.Create(uri); } public override WebResponse GetResponse() { // do your extras, or just delegate to get the original code, as long // as you still keep to expected behavior etc. return request.GetResponse(); } } }