Установить все в false относительно легко, поскольку default(T)
или new T()
имеют все их как false
. Так что вам просто нужно присвоить значение по умолчанию для интересующей вас переменной.
speakers=default(Speakers);
Если вам нужно значение не по умолчанию, вы можете использовать отражение, но это немного уродливо, так как бокс будет неявно копировать ваше значение. Чтобы установить все значения в true, вы можете:
Speakers speakers = new Speakers();
object boxedSpeakers = speakers;
foreach(PropertyInfo p in sp.GetType().GetProperties())
p.SetValue(boxedSpeakers, true, null);
speakers = (Speakers)boxedSpeakers;
Вы могли бы также подумать о том, чтобы сделать более чистую оболочку для этой сторонней библиотеки, таким образом изолируя ваш код от этой довольно уродливой структуры.