C# 防止visual studio将setter方法限制为内部
我使用visual studio 2015 CE,更新2。 我通常做的一个提高效率的技巧是创建空模型类,如:C# 防止visual studio将setter方法限制为内部,c#,.net,properties,visual-studio-2015,access-modifiers,C#,.net,Properties,Visual Studio 2015,Access Modifiers,我使用visual studio 2015 CE,更新2。 我通常做的一个提高效率的技巧是创建空模型类,如: public class PersonModel { } 然后在选择表达式中使用它们,如: db.People.Where(p => someCondition) .Select(p => new PersonModel { Id = p.Id, Name = p.Name, //set other properties }).ToList();
public class PersonModel
{
}
然后在选择表达式中使用它们,如:
db.People.Where(p => someCondition)
.Select(p => new PersonModel
{
Id = p.Id,
Name = p.Name,
//set other properties
}).ToList();
然后我转到尚未存在的属性Id
和Name
。。。然后按Control+。
要求visual studio为我生成属性Id
。
一切都很好,但它将创造:
public int Id { get; internal set; }
如果我在asp.net webapi模型绑定中使用相同的方法,绑定将以静默方式失败,并给出Id=0
所以我的问题是:有没有选择要求VS创建公共setter,即:
public int Id { get; set; }
您可以通过键入
prop
并按两次选项卡来执行此操作。它将要求您输入属性的类型和名称,但不会从现有属性中提取它
致以最良好的祝愿
所以我的问题是:有没有选择要求VS创建公共setter,即:
public int Id { get; set; }
否,无法修改快捷方式以自动添加具有公共集的属性。
尽管你的生产力技巧很好,但你最好的选择是自己创造它 在Visual Studio 2017中仍然相同,我使用相同的“生产力黑客”
我最近得到了Resharper,它确实像我们预期的那样使用了public setter。2021年,Visual Studio在代码生成过程中不断且不灵活地使用internal
关键字,这仍然限制了潜在生产力的提高。