2015-11-06 105 views
-1

好吧,我正在爲Windows 8.1 Universal開發一個應用程序,手機上還有一些API平臺上不存在的API。事情是我想要有條件地繼承一個類,如果當前平臺是Windows手機。這裏是我的代碼片段(不工作)C#中的條件類繼承問題

public class Client : IDisposable, IClient 
#if WINDOWS_PHONE_APP 
     , IWebAuthenticationContinuable 
#endif 
    { 
#if WINDOWS_PHONE_APP 
     void ContinueWebAuthentication(WebAuthenticationBrokerContinuationEventArgs args) { } 
#endif 

     public void DoStuff() 
     { 

     } 

     public void Dispose() 
     { 

     } 
    } 

每當我試圖在我的視圖模型來創建這個類的一個新實例,我得到以下錯誤: 無法創建類型App87.ViewModels的」實例.MainViewModel'[Line:9 Position:27]

第9行是我的構造函數,它只創建一個Client類的新實例。

+0

沒有足夠的上下文。請提供可靠地重現問題的[良好_minimal_,_complete_代碼示例](http://stackoverflow.com/help/mcve)。 –

+0

該類沒有任何方法或屬性,甚至沒有構造函數。所以我的代碼片段包含了該類的所有代碼。 –

+0

它沒有實現接口的方法嗎? – hatchet

回答

2

想你確切的代碼,只有一個不工作的事:因爲它是從一個接口繼承ContinueWebAuthentication應標記爲市民:

public interface IClient { } 

#if WINDOWS_PHONE_APP 
public interface IWebAuthenticationContinuable 
{ 
    void ContinueWebAuthentication(WebAuthenticationBrokerContinuationEventArgs args); 
} 
#endif 

public class Client : IDisposable, IClient 
#if WINDOWS_PHONE_APP 
    , IWebAuthenticationContinuable 
#endif 
{ 
#if WINDOWS_PHONE_APP 
    public void ContinueWebAuthentication(WebAuthenticationBrokerContinuationEventArgs args) { } 
#endif 

    public void DoStuff() 
    { 

    } 

    public void Dispose() 
    { 

    } 
} 
+0

這不適合我,所以我打開了一個新的Universal項目並嘗試了它,它工作得很好。但它仍舊不適用於舊項目。我想這是一個視覺工作室的事情。 –