C# 是否可以在不使用setter的情况下在属性中设置值?
我正在使用这个包()在.net应用程序中实现mandrill,现在有一个用于发送电子邮件的模型“EmailMessage”。EmailMessage模型内部有一个属性“GlobalMergeVars”: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设置值,
[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);
}