Я обычно делал это с помощью шаблона:
[DataContract]
public class MyClass
{
[DataMember]
public string ScanDevice { get; set; }
public MyClass()
{
SetDefaults();
}
[OnDeserializing]
private void OnDeserializing(StreamingContext context)
{
SetDefaults();
}
private void SetDefaults()
{
ScanDevice = "XeroxScan";
}
}
Не забудьте OnDeserializing, так как ваш конструктор не будет вызываться во время десериализации.