如何实例化具有只读属性的类
我想创建 AudioFormat
类中包含所有必需的信息。
基本上,我拥有的是
int
BitsPerSampleint
Channelsint
SamplesPerSecondWaveFormatType
WaveFormat
问题是,简单地使用类似的东西
AudioFormat format = new AudioFormat();
format.BitsPerSample = BitsPerSample;
[...]
是行不通的,因为无法分配属性或索引器“System.Windows.Media.AudioFormat.BitsPerSample”——它是只读的。
有没有一种简单的方法来创建这样的对象?如果没有,我应该做什么来创建它?使用继承,重写属性以便它们具有设置器?创建对象的 XML 表示形式然后反序列化它?使用其他一些丑陋的黑客(没有不安全
:-))?
I want to create an instance of the AudioFormat
class from all the required information.
Basically, what I have is
int
BitsPerSampleint
Channelsint
SamplesPerSecondWaveFormatType
WaveFormat
The problem is, that simply using something like
AudioFormat format = new AudioFormat();
format.BitsPerSample = BitsPerSample;
[...]
doesn't work, since Property or indexer 'System.Windows.Media.AudioFormat.BitsPerSample' cannot be assigned to -- it is read only
.
Is there an easy way to create such an object? If not, what should I do to create it? Using inheritance, overriding the properties so that they have setters? Creating an XML representation of the object and then deserialize it? Using some other ugly hacks (no unsafe
:-) )?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不应该直接创建此类。
它的存在是为了使用内部构造函数从
AudioCaptureDevice
类、SupportedFormats
属性返回信息。如果您尝试将其用于自己的目的,则应该创建自己的类。
You are not supposed to create this class directly.
It exists to return information from the
AudioCaptureDevice
class, from theSupportedFormats
property, using an internal constructor.If you're trying to use it for your own purposes, you should create your own class.