[英]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.