2011-04-17 69 views
0

我想根据所有必需的信息创建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

有没有简单的方法来创建这样一个对象?如果不是,我该怎么做才能创建它?使用继承,覆盖属性,以便他们有setter?创建对象的XML表示,然后反序列化它?使用其他一些丑陋的黑客(没有unsafe :-))?

+1

顺便说一句,这些是_properties_,而不是属性。 – SLaks 2011-04-17 19:15:00

回答

1

你不应该直接创建这个类。
它使用内部构造函数从SupportedFormats属性返回AudioCaptureDevice类的信息。

如果您尝试将它用于自己的目的,您应该创建自己的类。

+0

那么,我该如何通过TCP套接字传输'AudioFormat'实例?目前,我正在把需要重建它的四个成员,以减少将其完全序列化为xml等的开销。目前,它只有16个字节。 – Etan 2011-04-17 19:12:23

+0

你不应该。你应该创建自己的班级。 – SLaks 2011-04-17 19:12:43