2011-02-17 45 views
0

如果我要創建一個界面System.net.WebRequest,那麼最好的方法是什麼?最佳實踐,創建WebRequest界面

+2

我想第一個也是最重要的問題是,爲什麼?你想做什麼? – David 2011-02-17 20:23:39

回答

1

對於David的觀點,您首先需要確定您想要在界面上做什麼,然後才能決定需要哪些成員。如果你想要一個單元測試的接口,我會推薦一個單獨的方法。看看this question的票數最多的答案。

然而,要嚴格回答你的問題是問,因爲你不能修改WebRequest類,你首先要繼承它像這樣:

public class MyWebRequest : WebRequest, IMyWebRequest 
{ 
} 

然後,您可以添加所有的公衆通過暴露的WebRequest成員IMyWebRequest爲使(刪除你不想暴露成員):

public interface IMyWebRequest 
{ 
    Stream GetRequestStream(); 
    WebResponse GetResponse(); 
    IAsyncResult BeginGetResponse(AsyncCallback callback, object state); 
    WebResponse EndGetResponse(IAsyncResult asyncResult); 
    IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state); 
    Stream EndGetRequestStream(IAsyncResult asyncResult); 
    void Abort(); 
    RequestCachePolicy CachePolicy { get; set; } 
    string Method { get; set; } 
    Uri RequestUri { get; } 
    string ConnectionGroupName { get; set; } 
    WebHeaderCollection Headers { get; set; } 
    long ContentLength { get; set; } 
    string ContentType { get; set; } 
    ICredentials Credentials { get; set; } 
    bool UseDefaultCredentials { get; set; } 
    IWebProxy Proxy { get; set; } 
    bool PreAuthenticate { get; set; } 
    int Timeout { get; set; } 
    AuthenticationLevel AuthenticationLevel { get; set; } 
    TokenImpersonationLevel ImpersonationLevel { get; set; } 
    object GetLifetimeService(); 
    object InitializeLifetimeService(); 
    ObjRef CreateObjRef(Type requestedType); 
}