Prevent visual studio from limiting the setter method to internal

不羁的心 提交于 2019-12-30 02:47:08

问题


Well, I use visual studio 2015 CE, update 2. One productivity hack I usually do is that I create empty model classes like:

public class PersonModel
{
}

and then use them in a select expression like:

db.People.Where(p => someCondition)
.Select(p => new PersonModel
{
    Id = p.Id,
    Name = p.Name,
    //set other properties
}).ToList();

Then I go to the yet non-existing properties Id and Name, ... and press Control+. to ask visual studio to generate property Id for me. All great, but it will create:

public int Id { get; internal set; }

and if I use the same method in an asp.net webapi model binding, the binding will fail silently and give me Id = 0.

So my question is: is there any option to ask VS to create public setter, i.e.:

public int Id { get; set; }

回答1:


You can do that by typing prop and press the TAB twice. It will require you to enter type and name for property though, won't extract it from existing one.

Best regards.




回答2:


So my question is: is there any option to ask VS to create public setter, i.e.:

No, there is no way to modify the shortcut to automatically add the property with a public set. Although your productivity hack is neat, your best bet is to create it yourself.




回答3:


Still the same in Visual Studio 2017 and I use the same "productivity hack".

I recently got Resharper and it does use the public setter as we would expect it.



来源:https://stackoverflow.com/questions/38037562/prevent-visual-studio-from-limiting-the-setter-method-to-internal

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!