Замена Silverlight для BinaryReader.ReadDecimal - PullRequest
2 голосов
/ 28 января 2011

В Silverlight 4, BinaryReader, похоже, не имеет метода ReadDecimal().

Отражатель показывает, что он есть, но с видимостью internal, а не public.

Помимо использования этого через dynamic обман или рефлексию, есть ли у кого-нибудь хороший обходной путь для его получения.Или это все часть плана?


Эрика В стороне: забавно, Reflector также показывает, что в Ag mscorlib есть 10 InternalsVisibleToAttribute с (к сожалению, нетмой: D), который, как я полагаю, при 512+ байтах за ход дает много возможностей для оптимизации!Я уверен, что Боб тоже там: D

1 Ответ

1 голос
/ 02 февраля 2011

Прямой замены нет, но вы можете добиться такого же результата, как этот:

// write it, assume bw = BinaryWriter
var bits = decimal.GetBits(myDecimal);
bw.Write(bits[0]);
bw.Write(bits[1]);
bw.Write(bits[2]);
bw.Write(bits[3]);

// read it, assume br = BinaryReader
var bits = new int[4];
bits[0] = br.ReadInt32();
bits[1] = br.ReadInt32();
bits[2] = br.ReadInt32();
bits[3] = br.ReadInt32();
return new decimal(bits);
...