【发布时间】:2019-11-09 22:26:30
【问题描述】:
我正在使用 SSIS 脚本任务根据一些先决条件发送自动电子邮件。作为其中的一部分,我有一个 SendAutomatedEmail() 方法,在这个方法中,我传递了两个变量 mailServer 和收件人。在这样做时,我遇到了错误“对象引用未设置为对象的实例。”。
尝试使用构造函数,但没有解决问题。
class Program
{
public void Main()
{
string mailServer = Dts.Variables["User::varServer"].Value.ToString();
string recipient = Dts.Variables["User::varRecipient"].Value.ToString();
server msr = new server(mserv, rec);
}
public class server
{
string ms;
string r;
public result(string mserv, string rec)
{
ms = mserv;
r = rec;
}
}
}
using System.IO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Program
{
public void Main()
{
try
{
//do something
}
catch
{
//catch exception
}
}
public static void SendAutomatedEmail(string htmlString, string recipient = "user@domain.com")
{
try
{
string mailServer = Dts.Variables["User::varServer"].Value.ToString(); //error "object reference not set to an instance of an object."
string recipient = Dts.Variables["User::varRecipient"].Value.ToString(); //error "object reference not set to an instance of an object."
MailMessage message = new MailMessage("it@domain.com", recipient);
message .IsBodyHtml = true;
message .Body = htmlString;
message .Subject = "Test Email";
SmtpClient client = new SmtpClient(mailServer);
var AuthenticationDetails = new NetworkCredential("user@domain.com", "password");
client.Credentials = AuthenticationDetails;
client.Send(message);
}
catch (Exception e)
{
//catch exception
}
}
}
我应该能够在 SendAutomatedEmail() 方法中无缝地将值传递给变量。
【问题讨论】:
-
只需从函数中删除
static选项
标签: c# variables ssis etl script-task