防止 Visual Studio 将 setter 方法限制为内部
Posted
技术标签:
【中文标题】防止 Visual Studio 将 setter 方法限制为内部【英文标题】:Prevent visual studio from limiting the setter method to internal 【发布时间】:2016-10-28 11:59:34 【问题描述】:嗯,我使用 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();
然后我转到尚不存在的属性Id
和Name
,...并按Control+.
让Visual Studio 为我提供generate property Id
。
一切都很好,但它会创造:
public int Id get; internal set;
如果我在 asp.net webapi 模型绑定中使用相同的方法,绑定将静默失败并给我Id = 0
。
所以我的问题是:是否有任何选项可以要求 VS 创建公共设置器,即:
public int Id get; set;
【问题讨论】:
2021 和 Visual Studio 在代码生成中不断且不灵活地使用internal
关键字仍然限制了潜在的生产力提升。
grrrr,这需要排序,太烦人了。有谁知道是否有开放的用户声音来支持它?
【参考方案1】:
您可以通过键入prop
并按两次TAB
来做到这一点。它会要求您输入属性的类型和名称,但不会从现有属性中提取它。
最好的问候。
【讨论】:
【参考方案2】:所以我的问题是:是否有任何选项可以要求 VS 创建公共设置器,即:
不,没有办法修改快捷方式以自动添加具有公共集的属性。 尽管您的生产力技巧很简洁,但最好的选择是自己创建它。
【讨论】:
【参考方案3】:在 Visual Studio 2017 中仍然如此,我使用相同的“生产力技巧”。
我最近得到了 Resharper,它确实使用了我们所期望的公共设置器。
【讨论】:
以上是关于防止 Visual Studio 将 setter 方法限制为内部的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 Visual Studio 中生成 getter 和 setter?
如何防止 Visual Studio 将 SAK 添加到 prj 文件