Parameters System.Net.Mail.MailMessage扩展名中的参数计数不匹配
当_sendMethod.Invoke时发生错误。 你知道如何解决这个问题吗?这里有C代码。它似乎工作得很好。但是,它在vb.net中无法正常工作。我需要为此编写VB.NET 这是关于异常的信息 StackTrace:at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(对象obj、BindingFlags invokeAttr、Binder Binder、对象[]参数、CultureInfo区域性) 在System.Reflection.RuntimeMethodInfo.Invoke(对象obj、BindingFlags invokeAttr、绑定器绑定器、对象[]参数、CultureInfo区域性) 在PIPEmail.MailMessageExt.Save(MailMessage消息,字符串文件名) 消息:“参数计数不匹配。” 数据:{System.Collections.ListDictionaryInternal} TragetSite:{System.Object[]InvokeArgumentsCheck(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)}Parameters System.Net.Mail.MailMessage扩展名中的参数计数不匹配,parameters,count,mismatch,Parameters,Count,Mismatch,当_sendMethod.Invoke时发生错误。 你知道如何解决这个问题吗?这里有C代码。它似乎工作得很好。但是,它在vb.net中无法正常工作。我需要为此编写VB.NET 这是关于异常的信息 StackTrace:at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(对象obj、BindingFlags invokeAttr、Binder Binder、对象[]参数、CultureInfo区域性) 在System.Reflec
结束模块我在下面的代码中添加了“True”,然后它就可以工作了 _调用(消息, BindingFlags.Instance或BindingFlags.NonPublic, 没有什么, 新对象(){u mailWriter,True,True}, 没有什么 )
Public Sub Save(ByVal Message As MailMessage, ByVal FileName As String)
Dim assembly As Assembly = GetType(SmtpClient).Assembly
Dim _mailWriterType As Type = assembly.[GetType]("System.Net.Mail.MailWriter")
Try
Using _fileStream As New FileStream(FileName, FileMode.Create)
' Get reflection info for MailWriter contructor
Dim _mailWriterContructor As ConstructorInfo = _mailWriterType.GetConstructor(BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, New Type() {GetType(Stream)}, Nothing)
' Construct MailWriter object with our FileStream
Dim _mailWriter As Object = _mailWriterContructor.Invoke(New Object() {_fileStream})
' Get reflection info for Send() method on MailMessage
Dim _sendMethod As MethodInfo = GetType(MailMessage).GetMethod("Send", BindingFlags.Instance Or BindingFlags.NonPublic)
' Call method passing in MailWriter
**_sendMethod.Invoke(Message,
BindingFlags.Instance Or BindingFlags.NonPublic,
Nothing,
New Object() {_mailWriter, True},
Nothing
)**
'_sendMethod.Invoke(Message, BindingFlags.Instance Or BindingFlags.NonPublic, Nothing,
' Finally get reflection info for Close() method on our MailWriter
Dim _closeMethod As MethodInfo = _mailWriter.[GetType]().GetMethod("Close", BindingFlags.Instance Or BindingFlags.NonPublic)
' Call close method
_closeMethod.Invoke(_mailWriter, BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, New Object() {}, Nothing)
End Using
Catch ex As Exception
End Try
End Sub