从II级结构模型创建嵌套模型

时间:2020-09-01 17:55:44

标签: c# .net-core model

早上好,我有这个带有嵌套模型的课程:

public class EmailMessage
{

    public class EmailAddress
    {
        public string Name { get; set; }
        public string Address { get; set; }
    }

    public EmailMessage()
    {
        ToAddresses = new List<EmailAddress>();
        FromAddresses = new List<EmailAddress>();
    }

    public List<EmailAddress> ToAddresses { get; set; }
    public List<EmailAddress> FromAddresses { get; set; }
    public string Subject { get; set; }
    public string Content { get; set; }
}

在实现 忘记密码 时,创建该类型的模型存在问题,但是我在语法上遇到了问题-我以这种方式尝试:

        var message = new EmailMessage
        {
            ToAddresses =
            {
                Name = "Test",
                Address = "test@gmail.com",
            },
            Subject = "Reset password token",
            Content = callback);
        }   

正确的语法如何?是否需要使用foreach?

1 个答案:

答案 0 :(得分:1)

您需要使用List<EmailAddress>运算符初始化new,然后还使用EmailAddress运算符初始化列表中的每个新new。此外,您定义了一个构造函数,该构造函数同时需要ToAddressesFromAddresses列表。您可以这样实例化它:

var message = new EmailMessage(
  ToAddresses: new List<EmailAddress>() 
  { 
     new EmailAddress()
     {
         Name = "Test", 
         Address = "test@gmail.com"
     }
  }, 
  FromAddresses: new List<EmailAddress>())
{
  Subject = "Reset password token", 
  Content = callback
};

请注意,就像问题中的代码一样,当前FromAddreeses列表为空。

如果您有来自另一个集合(例如数据库)的多个地址,则也可以使用foreach来构建List<EmailAddress>,然后仅通过该构建列表来代替上例中的new List... 。请注意,foreach不能在初始化语法内使用-它必须是单独的语句才能构建列表。