簡體   English   中英

Reflection Activator.CreateInstance()說變量為NULL

[英]Reflection Activator.CreateInstance() Saying Variables Are NULL

string to = "user@example.com";
string from = "user@example.com";
string title = "Test";
string body = "Test Email";

Type t1 = Type.GetType("System.Net.Mail.MailMessage");
Object test = Activator.CreateInstance(t1, new object[] { to, from, title, body });

我正在嘗試對System.Net.Mail使用反射(不要問為什么)。
現在,當我運行和編譯時,它說到,從,標題和正文為NULL(System.ArgumentNullException:值不能為null。)

為什么會這樣呢? 如果我用定義的變量替換變量,它就可以正常工作。

編輯1完全錯誤

System.ArgumentNullException: Value cannot be null.

   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at mcclureski.Program.Main(String[] args) in c:\Users\JohnDoe\Documents\SharpDevelop Projects\Test\Program.cs:line 67

Activator.CreateInstance的第二個參數是params數組 ,因此不要實例化對象數組,只需將參數以正確的順序放置以適合您的類型構造:

Object test = Activator.CreateInstance(t1, to, from, title, body);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM