Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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# 防止visual studio将setter方法限制为内部_C#_.net_Properties_Visual Studio 2015_Access Modifiers - Fatal编程技术网

C# 防止visual studio将setter方法限制为内部

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();

我使用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为我
生成属性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
关键字,这仍然限制了潜在生产力的提高。