2015-01-11 69 views
-1

在VS中,我引用了庫的DLL。如何重新定義c中的類#

我想用我自己定義的類庫/ API使用,而不是圖書館的。我想這樣做來爲現有的類添加功能。

類擴展不足,因爲我想向類中添加新的靜態方法。

我有我想要重新實現的類的來源。

有沒有一種方法來重新定義我的項目中的類,並使用它來代替dll的類,而無需導入庫/ DLL的整個源。我寧願不導入整個源代碼,只是我想要修改的類。

實際上,我想要修改的類不是類,而是結構體,並且沒有部分修飾符。

+1

號,您可以創建自己的DLL版本。但你可能不應該這樣做。 – SLaks

+0

那麼,如果你有源代碼,只需將它添加到你的項目中,不是嗎? – OldProgrammer

+0

@OldProgrammer如果可能,我寧願不導入整個源代碼,只是我想修改的類。 – Thomas

回答

1

嘗試擴展方法:

namespace DLLNamespace 
{ 
    public struct TestStruct 
    { 
     public string Name { get; set; } 
     public void SetName(string name) { this.Name = name; } 
    } 
} 

namespace ProgramNamespace 
{ 
    public static class ExtensionMethods 
    { 
     public static void ReverseName(this DLLNamespace.TestStruct target) 
     { 
      target.Name = new string(target.Name.ToArray().Reverse().ToArray()); 
     } 
    } 

    public class Program 
    { 
     static void Main(string[] args) 
     { 
      DLLNamespace.TestStruct ts; 
      ts.SetName("John"); 
      ts.ReverseName(); 
      Console.WriteLine(ts.Name); 
     } 
    } 
}