为什么MailDefinition类需要System.Web.UI.Control?

Joh*_*ski 14 c# asp.net mailmessage

通过在MailDefinition类上调用"CreateMailMessage"方法创建MailMessage对象时,第三个参数是System.Web.UI.Control类型的对象.

MailDefinition mail = new MailDefinition();

ListDictionary replacements = new ListDictionary();
replacements.Add("<%myname%>", "John");

mail.BodyFileName = "~/App_Data/Emails/SomeEmail.txt";
mail.From = "me@example.com";
mail.Subject = "Hello";

MailMessage message = mail.CreateMailMessage("example@example.com,", replacements, );
Run Code Online (Sandbox Code Playgroud)

这是为什么?
如果我没有这种类型的对象,我应该通过什么呢?只是一个新的Control对象?

Control control = new Control();
Run Code Online (Sandbox Code Playgroud)

UPDATE

我强烈建议使用Razor构建电子邮件模板.它具有很好的语法,效果很好,并且没有任何奇怪的依赖!

And*_*are 5

通常你只是this作为控件传递.

MailMessage message = mail.CreateMailMessage("example@example.com,", replacements, this);
Run Code Online (Sandbox Code Playgroud)

至于原因,这就是MSDN所说的:

owner参数指示哪个控件是MailDefinition控件的父控件.它确定搜索BodyFileName属性中指定的文本文件的目录.