C# 使用不可变集合或减少字段的可访问性 'CreateContactMapping'
C# Use an immutable collection or reduce the accessibility of the field(s) 'CreateContactMapping'
我在旧项目中遇到 class 问题,我不知道如何重构这部分,我从 sonarcube 收到以下错误消息:
Use an immutable collection or reduce the accessibility of the field(s) 'CreateContactMapping'.Why is this an issue?
这是一段代码
public static readonly Dictionary<string, Func<UpdateContactServiceRequest, object>> UpdateContactMapping = new Dictionary<string, Func<UpdateContactServiceRequest, object>>
{
{ "firstname", req => req.FirstName },
{ "lastname", req => req.LastName },
{ "full_name", req => req.FullName },
{ "email", req => req.Email },
{ "phone", req => req.Phone },
{ "date_of_birth", req => req.BirthDate },
{ "job_title", req => req.JobTitle },
{ "occupation", req => req.Occupation },
{ "renda", req => req.MonthlyIncome },
{ "lifecyclestage", req => req.LifeCycleStage },
{ "hs_lead_status", req => req.LeadStatus },
{ "ali_email_validated", req => req.EmailValidated },
{ "ali_sms_token_validated", req => req.CellphoneValidated },
{ "id_da_proposta_atual", req => req.CurrentProposalId },
{ "contact_type", req => req.ContactType }
};
如何最好地解决这个问题?
一个解决方案是在初始化字典后将 Dictionary
更改为 ImmutableDictionary
,然后 运行 .ToImmutableDictionary()
。
public static readonly ImmutableDictionary<string, Func<UpdateContactServiceRequest, object>> UpdateContactMapping = new Dictionary<string, Func<UpdateContactServiceRequest, object>>
{
{ "firstname", req => req.FirstName },
{ "lastname", req => req.LastName },
{ "full_name", req => req.FullName },
{ "email", req => req.Email },
{ "phone", req => req.Phone },
{ "date_of_birth", req => req.BirthDate },
{ "job_title", req => req.JobTitle },
{ "occupation", req => req.Occupation },
{ "renda", req => req.MonthlyIncome },
{ "lifecyclestage", req => req.LifeCycleStage },
{ "hs_lead_status", req => req.LeadStatus },
{ "ali_email_validated", req => req.EmailValidated },
{ "ali_sms_token_validated", req => req.CellphoneValidated },
{ "id_da_proposta_atual", req => req.CurrentProposalId },
{ "contact_type", req => req.ContactType }
}.ToImmutableDictionary();
我在旧项目中遇到 class 问题,我不知道如何重构这部分,我从 sonarcube 收到以下错误消息:
Use an immutable collection or reduce the accessibility of the field(s) 'CreateContactMapping'.Why is this an issue?
这是一段代码
public static readonly Dictionary<string, Func<UpdateContactServiceRequest, object>> UpdateContactMapping = new Dictionary<string, Func<UpdateContactServiceRequest, object>>
{
{ "firstname", req => req.FirstName },
{ "lastname", req => req.LastName },
{ "full_name", req => req.FullName },
{ "email", req => req.Email },
{ "phone", req => req.Phone },
{ "date_of_birth", req => req.BirthDate },
{ "job_title", req => req.JobTitle },
{ "occupation", req => req.Occupation },
{ "renda", req => req.MonthlyIncome },
{ "lifecyclestage", req => req.LifeCycleStage },
{ "hs_lead_status", req => req.LeadStatus },
{ "ali_email_validated", req => req.EmailValidated },
{ "ali_sms_token_validated", req => req.CellphoneValidated },
{ "id_da_proposta_atual", req => req.CurrentProposalId },
{ "contact_type", req => req.ContactType }
};
如何最好地解决这个问题?
一个解决方案是在初始化字典后将 Dictionary
更改为 ImmutableDictionary
,然后 运行 .ToImmutableDictionary()
。
public static readonly ImmutableDictionary<string, Func<UpdateContactServiceRequest, object>> UpdateContactMapping = new Dictionary<string, Func<UpdateContactServiceRequest, object>>
{
{ "firstname", req => req.FirstName },
{ "lastname", req => req.LastName },
{ "full_name", req => req.FullName },
{ "email", req => req.Email },
{ "phone", req => req.Phone },
{ "date_of_birth", req => req.BirthDate },
{ "job_title", req => req.JobTitle },
{ "occupation", req => req.Occupation },
{ "renda", req => req.MonthlyIncome },
{ "lifecyclestage", req => req.LifeCycleStage },
{ "hs_lead_status", req => req.LeadStatus },
{ "ali_email_validated", req => req.EmailValidated },
{ "ali_sms_token_validated", req => req.CellphoneValidated },
{ "id_da_proposta_atual", req => req.CurrentProposalId },
{ "contact_type", req => req.ContactType }
}.ToImmutableDictionary();