2017-05-06 19 views
-1

我想爲靜態類中的不同客戶端dll聲明Import語句。如何動態使用DLL名稱作爲C#導入的一部分#

大多數API都遵循相同的方法簽名,而對於少數API,參數方面存在差異。我想通過使用條件編譯參數來實現這一點,其中對於公共API,必須使用用戶在條件參數中給出的名稱來重新定義DLL名稱。只有當用戶在條件參數中給出時,才需要包含項目特定的導入語句。

可以這樣做嗎?

namespace Import 
{ 
    static class ClientImport 
    { 
     public static string DLLNAME; 

    #if USERAS 

     [DllImport("IDEARASClient.dll", CallingConvention = CallingConvention.StdCall)] 
     public static extern Int32 InitilizeClient(String ProtocalSequence,String NetworkAddress,String PortNoString,String TempLogPath,ref Int32 hClient); 

    #else 
     DLLNAME = "IDEARASClient.dll"; 
     #endif 


    [DllImport(DLLNAME, CallingConvention = CallingConvention.StdCall)] 
    public static extern Int32 InitilizeClient(String 
    ProtocalSequence,String NetworkAddress,String PortNoString,String 
    TempLogPath,ref Int32 hClient); 
    } 
} 

回答

相關問題