我实际上有两个关于同一问题的问题,但我认为最好将它们分开,因为我认为它们并不相关.
背景:我正在VB.NET中编写一个Windows Mobile软件,其中任务需要连接到邮件服务器以发送和检索电子邮件.因此,我还需要一个Mime解析器(用于解码和编码)电子邮件以获取附件.首先我想,我会写一个小的"hack"来处理这个问题(使用普通的字符串解析),但后来我在CodeProject看到了一个用C#编写的项目我认为我会在我的解决方案中实施.我对C#了解不多,所以我只是从类中创建了一个类库,并在我的VB.NET项目中使用它.当我在普通的Windows计算机上瞄准Net Framework时,这个库工作得非常好,但当我打算制作针对Compact Net Framework的同一个库时,我遇到了麻烦.这是很自然的,因为Compact Net Framework有更多的限制,但实际上我没有得到那么多错误 - 只有两个错误,尽管在代码中的不同位置重复.
其中一个错误是在这个问题的主题中引用的错误,即"方法'没有重载'GetString'取'1'参数".如上所述,我对C#了解不多,所以我将带有错误的类转换为VB-NET,但我仍然不太了解..这是给出上述错误的函数:
public virtual string DecodeToString(string s) { byte[] b = DecodeToBytes(s); if(m_charset != null) { //ERROR ON THIS LINE return System.Text.Encoding.GetEncoding(m_charset).GetString(b); } else { m_charset = System.Text.Encoding.Default.BodyName; //ERROR ON THIS LINE return System.Text.Encoding.Default.GetString(b); } }
如果这个类需要完整的源代码,那么我可以在这个帖子中的另一个消息中发布它,或者你可以通过在上面提到的网站上下载代码并查看名为MimeCode的类来找到它. CS.
谁可以帮助我?我可以以某种方式重写上述功能来克服这个问题吗?
我提前感谢你的帮助.
亲切的问候,祝大家新年快乐.
Rgds,moster67
CF .NET要求您使用签名:Encoding.GetString方法(array [],Int32索引,Int32计数),所以尝试使用:
...GetString(b, 0, b.Length);