में मेमोरीस्ट्रीम के रूप में System.Net.Mail.MailMessage प्राप्त करना, इसलिए नीचे दिया गया कोड .NET 4 में काम करने के लिए प्रयुक्त होता है। System.et.Mail.MailMessage ऑब्जेक्ट को मेमोरीस्ट्रीम के रूप में प्राप्त करने के लिए, हालांकि रिलीज़ के साथ .NET 4.5 बीटा का रनटाइम अपवाद होता है।.NET 4.5 बीटा
Assembly assembly = typeof(SmtpClient).Assembly;
Type mailWriterType = assembly.GetType("System.Net.Mail.MailWriter");
using (MemoryStream stream = new MemoryStream())
{
ConstructorInfo mailWriterContructor = mailWriterType.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic, null, new[] { typeof(Stream) }, null);
object mailWriter = mailWriterContructor.Invoke(new object[] { stream });
MethodInfo sendMethod = typeof(MailMessage).GetMethod("Send", BindingFlags.Instance | BindingFlags.NonPublic);
sendMethod.Invoke(message, BindingFlags.Instance | BindingFlags.NonPublic, null, new[] { mailWriter, true }, null);
.....
}
रनटाइम अपवाद sendMethod.Invoke() पर होता है।
अपवाद (स्टैक ट्रेस करने में मदद कर सकते हैं) क्या है? –
अपवाद यह था: सिस्टम। रिफ्लेक्शन। लक्ष्य पैरामीटर कैंटर अपवाद: पैरामीटर गिनती मेल नहीं खाता। – dimoss
क्या आपने .NET 4 कोड की तुलना .NET 4.5 से की है, यह देखने के लिए कि क्या उन्होंने 'Send' का अधिभार छोड़ा है? यह निश्चित रूप से 'गतिशील' के उपयोग के साथ अधिक आसानी से संभाला जा सकता है। –