No, there is no built in ability to set the value of a property with metadata. You could use a factory of some sort that would build instances of a class with reflection and then that could set the default values. But in short, you need to use the constructors (or field setters... which are lifted to the constructor.) To set the default values.
If you have several overloads for your constuctor you may want to look at constructor chaining.
BTW... a highly requested feature to the automatic properties would be for a construct similar to this...
public string MyValue { get; set; } = "My Default";
... this does not currently exist in C# but hopefully it will in some future version.
Oh, it gets more fun because people have even requested something like this...
public string MyValue {
private string _myValue;
get { return _myValue ?? "My Default"; }
set { _myValue = value; }
}
... the advantage being that you could control the scope of the field to only be accesible in the property code so you don't have to worry about anything else in your class playing with the state without using the getter/setter.