Как создавать экземпляры классов с атрибутами только для чтения - PullRequest
0 голосов
/ 17 апреля 2011

Я хочу создать экземпляр класса AudioFormat из всей необходимой информации.

По сути, у меня есть

  • int BitsPerSample
  • int Каналы
  • int SamplesPerSecond
  • WaveFormatType WaveFormat

Проблема в том, что просто используется что-то вроде

AudioFormat format = new AudioFormat();
format.BitsPerSample = BitsPerSample;
[...]

не работает, так как Property or indexer 'System.Windows.Media.AudioFormat.BitsPerSample' cannot be assigned to -- it is read only.

Есть ли простой способ создать такой объект? Если нет, что я должен сделать, чтобы создать его? Используя наследование, переопределяя свойства, чтобы у них были сеттеры? Создание XML-представления объекта и его десериализация? Использование некоторых других уродливых хаков (нет unsafe :-))?

1 Ответ

1 голос
/ 17 апреля 2011

Вы не должны создавать этот класс напрямую.
Он существует для возврата информации из класса AudioCaptureDevice, из свойства SupportedFormats, используя внутренний конструктор.

Если вы пытаетесь использовать его в своих целях, вам следует создать свой собственный класс.

...