No, no hay construido en capacidad de establecer el valor de una propiedad con metadatos. Podría usar una fábrica de algún tipo que construiría instancias de una clase con reflejo y luego eso podría establecer los valores predeterminados. Pero, en resumen, debe usar los constructores (o los ajustadores de campo ... que se levantan al constructor). Para establecer los valores predeterminados.
Si tiene varias sobrecargas para su contructor, puede consultar constructor chaining.
Utilizando C# 6+ que son capaces de hacer algo como esto ...
public string MyValue { get; set; } = "My Default";
Oh, se vuelve más divertido porque la gente, han pedido algo como esto ...
public string MyValue {
private string _myValue;
get { return _myValue ?? "My Default"; }
set { _myValue = value; }
}
... la ventaja es que puedes controlar el alcance del campo para que solo sea accesible en el código de la propiedad, por lo que no tienes que preocuparte por nada más en tu clase jugando con el estado sin usar el getter/setter.
¿Hay algún lugar donde pueda votar esta función o algo así? – BrunoLM
Es posible que pueda encontrar algo en connect.microsoft.com. –
eek ... Acabo de encontrar esto en CodeProject. Utiliza la reflexión para establecer los valores predeterminados una vez que se ha construido el objeto. http://www.codeproject.com/KB/dotnet/AutoPropsDefaultValues.aspx –