Beh, io utilizzare Visual Studio 2015 CE, aggiornare 2. Una produttività mod faccio di solito è che posso creare classi del modello vuote come:Impedire visual studio di limitare il metodo setter per interno
public class PersonModel
{
}
e poi utilizzarli in un'espressione di selezione del tipo:
db.People.Where(p => someCondition)
.Select(p => new PersonModel
{
Id = p.Id,
Name = p.Name,
//set other properties
}).ToList();
poi vado alle proprietà ancora non esistenti Id
e Name
, ... e premere Control+.
chiedere visual Studio per generate property Id
per me. Tutti i grandi, ma si creerà:
public int Id { get; internal set; }
e se uso lo stesso metodo nel legare un modello asp.net WebAPI, il legame non riuscirà silenzio e darmi Id = 0
.
Quindi la mia domanda è: c'è qualche possibilità di chiedere VS per creare setter pubblico, cioè .:
public int Id { get; set; }
Grazie per il chiarimento sul motivo del comportamento. Spero davvero che ci sia una soluzione alternativa per preferire 'public' a' internal' – Alireza
Non mi è chiaro cosa significhi "perché basato sul codice corrente è quello appropriato", comunque se la classe è 'Serializable' l'accessibilità interna non consente una corretta inizializzazione: il 'XmlSerializer' lancia un'eccezione poiché non può accedere al setter. Inoltre, non suggerisco di creare un altro assembly per evitare di cancellare 'internal'. Sarebbe bello avere un modo per cambiare questo comportamento, –
@AngeloMascaro. Viene gestito dal binding del modello asp.net mvc (o web-api). Ignora silenziosamente il setter interno. – Alireza