Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以在不使用setter的情况下在属性中设置值?_C#_.net_Asp.net Core 2.0_Mailchimp_Mandrill - Fatal编程技术网

C# 是否可以在不使用setter的情况下在属性中设置值?

C# 是否可以在不使用setter的情况下在属性中设置值?,c#,.net,asp.net-core-2.0,mailchimp,mandrill,C#,.net,Asp.net Core 2.0,Mailchimp,Mandrill,我正在使用这个包()在.net应用程序中实现mandrill,现在有一个用于发送电子邮件的模型“EmailMessage”。EmailMessage模型内部有一个属性“GlobalMergeVars”: [JsonProperty(“全局合并变量”)] 公共列表GlobalMergeVars{get;} 现在我们可以看到GlobalMergeVars没有setter,但我必须为此设置一个值。如果我们转到这个链接()并单击“Try it”按钮,那么我们可以为GlobalMergeVars设置值,

我正在使用这个包()在.net应用程序中实现mandrill,现在有一个用于发送电子邮件的模型“EmailMessage”。EmailMessage模型内部有一个属性“GlobalMergeVars”:

[JsonProperty(“全局合并变量”)]
公共列表GlobalMergeVars{get;}
现在我们可以看到GlobalMergeVars没有setter,但我必须为此设置一个值。如果我们转到这个链接()并单击“Try it”按钮,那么我们可以为GlobalMergeVars设置值,但我认为我使用的包中存在一些问题。但我不能切换到其他软件包,因为与其他软件包相比,它非常灵活。那么,是否有必要为GlobalMergeVars设置值


附:我还就github回购发行了一个问题。但是由于一些截止日期很近,我需要一个快速解决方案。

很抱歉,我是坏消息的传递者,但是如果没有公共设置器,你就不能直接从课外设置值。其他的选择是通过一个构造函数或一个允许这样做的方法。但你似乎没有任何这样的选择

另一方面,只需检查该属性是否没有可以作为一个整体设置的父属性。例如,在C#中,使用字体时,设置标签的字体。字体对象的某些属性为“只读”,无法在外部设置。但是字体对象本身是可以设置的。因此,在这种情况下,您必须在本地创建一个新字体对象,并设置所需的道具,然后将其指定/设置为新字体

希望你能及时找到工作

更新:

鲁福爵士刚刚给了你解决方案:

答案是:阅读 github.com/shawnmclean/mandrilldotnet/blob/master/src/Mandrill/… 从第376行开始。这种方法是为你的情况而设计的


我很抱歉是坏消息的传递者,但是如果没有公共setter,您就不能直接从类外设置值。其他的选择是通过一个构造函数或一个允许这样做的方法。但你似乎没有任何这样的选择

另一方面,只需检查该属性是否没有可以作为一个整体设置的父属性。例如,在C#中,使用字体时,设置标签的字体。字体对象的某些属性为“只读”,无法在外部设置。但是字体对象本身是可以设置的。因此,在这种情况下,您必须在本地创建一个新字体对象,并设置所需的道具,然后将其指定/设置为新字体

希望你能及时找到工作

更新:

鲁福爵士刚刚给了你解决方案:

答案是:阅读 github.com/shawnmclean/mandrilldotnet/blob/master/src/Mandrill/… 从第376行开始。这种方法是为你的情况而设计的


我想我已经找到你说的那门课了。尽管
EmailMessage
的属性与您在问题中显示的不同:

public class EmailMessage
{
    #region Public Properties
    ...
    /// <summary>
    ///   Gets the global_merge_vars.
    /// </summary>
    public List<MergeVar> GlobalMergeVars { get; private set; }

我想我已经找到你说的那门课了。尽管
EmailMessage
的属性与您在问题中显示的不同:

public class EmailMessage
{
    #region Public Properties
    ...
    /// <summary>
    ///   Gets the global_merge_vars.
    /// </summary>
    public List<MergeVar> GlobalMergeVars { get; private set; }

您尝试过该类的构造函数吗?EmailMessage类中只有一个空构造函数请添加更多详细代码!同时告诉你要在哪种情况下设置值。答案是:从第376行开始阅读。该方法是为您的案例而设计的谢谢,这正是我想要的。您尝试过该类的构造函数吗?EmailMessage类中只有一个空构造函数请添加更多详细代码!同时告诉你要在哪种情况下设置值。答案是:从第376行开始阅读。这种方法是为你的情况设计的谢谢,这正是我想要的。你忘了提到可能有一种方法可以做这项工作(事实上,有一种);o) @SirRufo-不,我确实提到了这一点,只是给你添加了解决方案。荣誉你忘了提到可能有一种方法可以完成这项工作(事实上,有一种);o) @SirRufo-不,我确实提到了这一点,只是给你添加了解决方案。荣誉
public void AddGlobalVariable(string name, dynamic content)
{
  if (GlobalMergeVars == null)
  {
    GlobalMergeVars = new List<MergeVar>();
  }

  var mv = new MergeVar {Name = name, Content = content};
  GlobalMergeVars.Add(mv);
}