2010-05-11 65 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