2010-05-11 107 views
2

Microsoft的System.Net.Mail的實施不提供強大的郵件解決方案。我想使用Mono的System.Net.Mail實現,但是這個命名空間嵌入在Mono附帶的System.dll中,並且與原始的.net框架具有完全相同的命名空間。如何從Mono中提取System.Net.Mail並重命名命名空間?

我想要做的是從單聲道解決方案中提取System.Net.Mail,並將名稱空間重命名爲Mono.System.Net.Mail。然後我可以在它自己的DLL中編譯這個代碼,最後得到一個可以工作的郵件解決方案

任何人都可以告訴我如何做到這一點嗎?

+0

這合法嗎? :)另外,出於好奇,什麼特別不健壯? – bzlm 2010-05-11 07:08:22

+0

@bzlm是的,如果你遵守許可協議,它是合法的,並明確提到你已經使用Mono。第二 - 在.net v3.5或更低版本中,SMTP客戶端不會向SMTP服務器發送QUIT命令。在.net v4.0 RTM中,您無法發送大於3-4MB.s的附件 – 2010-05-11 07:12:33

回答

2

只是檢查出從svn repositorysvn co svn://anonsvn.mono-project.com/source/trunk/mcs/class/System/System.Net.Mail)的代碼,複製您需要到一個新項目中的類,更改命名空間和自己編譯一個dll。單聲道類庫在MIT許可下獲得許可,因此您只需說明您在最終產品許可證中使用了它們,並且一切正常。

+0

那麼我終於做到了。這不完全是蛋糕散步,但也不是太難。 – 2010-05-24 15:47:25

0

您可能能夠使用一個extern alias(如果你使用C#)

+0

感謝但不幸的是,此功能在2010年有問題。 例如 - 創建一個新的類庫(framework v4),刪除對系統。添加一個新的參考 - 瀏覽到mono system.dll,添加它,注意舊的System.dll是如何添加到項目中的。 – 2010-05-11 07:22:46

+0

重命名文件後,得到兩個系統DLL的參考列表,但不會編譯 - 錯誤具有相同的身份'系統,版本= 2.0.0.0,文化=中立,PublicKeyToken = b77a5c561934e089'已經進口。嘗試刪除其中一個重複的參考。 \t d:\ Mono-2.6.4 \ lib \ mono \ 2.0 \ Mono.System.dll \t ClassLibrary1 – 2010-05-11 07:35:39