[英]Sharing code between two c# assemblies
1)我有一個名為SocketServer的項目,其中有一個Class Room ,這個項目是一個編譯的exe,也可以編譯為DLL。
2)在另一個名為MyGame的項目中,有一個名為MyAwesomeGame的類,我需要在其中執行以下操作:
public class MyAwesomeGame
{
public Init(Room room)
{
//I can get data from Room
}
}
現在,MyGame Project被編譯成MyGame.DLL,並放置在相對於SocketServer.exe的某個地方,SocketServer.exe在運行時加載MyGame.DLL並實例化MyAwesomeGame類並調用Method Init並將room作為參數傳遞。 代碼是SocketServer項目是這樣的:
public class Room
{
private InstantiateGameRoom()
{
//Load External MyGame.DLL Assembly
Task<MyAwesomeGame> task = Task<MyAwesomeGame>.Factory.StartNew(() => (MyAwesomeGame)Activator.CreateInstance(classType, new object[] { this }));
MyAwesomeGame instance = task.result;
instance.init(this);
}
}
所以我的問題是我怎么能獲得MyGame項目在教室的參考? 我應該添加我的SocketServer項目的引用嗎? 如果我這樣做,它會不會被我的MyGame.dll編譯?
ps:我還打算將socketserver.dll作為API分發給第三方用戶。
您應該將SocketServer生成的dll添加到MyGame項目的引用中。 右鍵單擊MyGame,單擊Add,單擊References ...,在對話框中選擇Projects並選擇SocketServer項目。
我相信確保SocketServer是MyGame項目的依賴性以確保在MyGame之前構建SocketServer也是明智之舉。
- 編輯:請閱讀我在Sushant澄清之后做出的評論。 或直接去Sid的回答。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.