2012-01-25 36 views
2

我必須爲現有的應用程序編寫add-in。客戶端將使用應用程序和加載項。應用程序和add-in都是用戶的黑匣子。我的加載項是一個.Net C# dll和C#中的用戶可以編碼。有沒有任何標準的方式或設計模式來處理?

現在我必須提供一種機制,通過它用戶可以編寫一些C#代碼。該代碼將在運行時由我的add-in加載並執行,以獲取加載項所需的數據。

什麼是最好的做法來實現這一

編輯

只是爲了澄清多一點...

在我的加載項,在執行過程中,我得到一個字符串

現在,我想打電話給一些用戶功能

string resultString = UserFunction("SomeString");

現在我想知道如何讓用戶寫這UserFunction這樣我就可以在運行時調用它,回到基於SomeString

+0

看看兩個MAF。這個問題應該可以幫助你:http://stackoverflow.com/questions/835182/choosing-between-mef-and-maf-system-addin –

回答

3

Er..this resultString變得有點調皮......尤其是如果它必須按照你說的這個問題的方式發生。

您可以允許用戶將文本c#代碼傳遞給dll中的某個函數,然後基本上將該代碼編譯到內存中的程序集中,但這似乎有很多工作可以讓某人將代碼傳遞到已經存在的編譯後的DLL,以便重新編譯並重新運行。

你可以看一下後這裏瞭解更多信息有關此主題: http://www.dotnetthoughts.net/2011/01/09/how-to-compile-c-code-snippet-in-runtime/

一個更好的做法是隻將數據傳遞到DLL,如果你能以某種方式重構應用程序以支持。

相關問題