.NET BinaryReader/BinaryWriter类可以通过指定用于String-related操作的Encoding来构造。
我是用扩展方法实现自定义字符串格式的,但是在实例化BinaryReader/Writer时,它还会以尊重指定的BinaryReader/Writer的方式实现它们。
似乎没有从读者/作者那里检索编码的方法,甚至在继承他们的类时也是如此。我只能从它们继承来通过重新创建它们的所有构造函数来拦截传递的编码。我查看了.NET源代码,它只用于实例化解码器类(在BinaryReader的情况下),但我也无法访问这个类。
我在这里的课上有什么缺点吗?我能用倒影黑进去吗?
发布于 2015-04-03 16:59:41
如果在您的场景中子类化和拦截构造函数中的编码甚至是远程可行的话,我更喜欢它而不是潜在的不稳定反射黑客。
但是,如果您出于某种原因必须选择反射路径,下面是我从您引用的BinaryReader源代码中找到的一些提示
Decoder类本身并不包含对Encoding的任何引用,但:Decoder实例是通过调用encoding.GetDecoder()创建的(第65行)DefaultDecoderEncoding在m_encodinghttps://stackoverflow.com/questions/29435814
复制相似问题