2014-05-07 126 views
-1

是否有可能與dll共享類定義?我有主要的程序類定義和與SQL的連接。我需要一些DLL來將數據導出到XML。但我不知道如何發送數據集合到DLL。如果這個類是在「main」程序中定義的。與dll共享類定義

例如 主要代碼:

namespace A 
{ 
    public void callMethod() 
    { 
     B.method(aa); 
    } 

    public class aa 
    { 
     public aa() 
     { 
      this.abList = new List<ab>(); 
     } 
     public int number {get; set;} 
     public List<ab> abList {get;set;} 
    } 

    public class ab 
    { 
     public string text {get; set;} 
    } 
} 

DLL庫:

namespace B 
{ 
    public static void method(aa atribute) // ?? 
    { 
     aa. //?? 
    } 

} 
+0

你有沒有嘗試添加所需的參照並使用指令?此外,這個問題寫得很差,你可能想修改它。 – aevitas

回答

1

您需要創建一個公共庫,無論是類或由這兩個項目中,並參考這個實現的接口。

所以不是

  • MainProj
    • AA
  • DllProject

你應該有

  • MainProj
  • DllProject
  • 常見
    • AA

所以您將aaCommon項目,並參考該由所有其他項目中。

如果您不能將aa移出MainProj您可以使用通用接口。
定義在Common類似:

public interface Iaa 
{ 
    int number { get; set;} 
    List<ab> abList { get; } 
} 

和實施,在AA:

public class aa : Iaa 
{ 
    public aa() 
    { 
     this.abList = new List<ab>(); 
    } 
    public int number {get; set;} 
    public List<ab> abList {get;set;} 
} 

的,你可以定義DllProject如下:

public static void method(Iaa atribute) // ?? 
{ 
    aa.number = ... 
}