2014-03-31 46 views
0

儘管搜索,我還沒有找到一個解決我的問題:撥打國際長途的孩子在C#中的框架類的

我想繼承Windows.Networking.Sockets.StreamSocket,使它可作爲一個Singleton我的WP8應用程序:

 class StreamSocketSingleton : StreamSocket { 

    private static StreamSocketSingleton instance; 

    public StreamSocketSingleton() : base() { } 

    public static StreamSocketSingleton GetInstance { 
     get { 
      if (instance == null) { 
       instance = new StreamSocketSingleton(); 
      } 
      return instance; 
     } 
    } 

到目前爲止好。但我顯然需要調用StreamSocket函數,如ConnectAsync,GetInputStream等。

我試圖使用基本關鍵字,例如base.ConnectAsync:

public void ConnectAsync(HostName hostName, String serviceName) { 
base.ConnectAsync(hostName, serviceName); 
} 

但是,Visual Studio聲稱「對象」不包含ConnectAsync的定義。對我來說,它看起來像我從Object繼承,我不是(對吧?)

希望有人能幫助我!

乾杯

+1

請顯示實際失敗的代碼 - 即嘗試調用ConnectAsync。 –

+0

按要求完成,thx – coernel

+0

爲什麼你要添加該方法,如果它只是委託給基礎實現?那是在'StreamSocketSingleton'類還是其他地方? –

回答

0

沒有必要調用基類。您可以自由調用

StreamSocketSingleton instance = new StreamSocketSingleton(); 
instance.ConnectAsync(hostName, serviceName); 

,或者如果你在你的類declartion

this.ConnectAsync(hostName, serviceName); 

對於這個特殊的代碼,我有它的2個問題:

  1. 如果你真的做了單身人士,你的建設者應該是私人的(即除了單身人士之外沒有人應該能夠實例)
  2. 只要MSDN showsStreamSocket是密封的,所以你不能繼承那個類。你的代碼不應該編譯。
+0

那麼有這樣的想法。感謝您的幫助@Mario! – coernel

相關問題