本文整理汇总了C#中Orleans.Serialization.BinaryTokenStreamReader.ReadInt方法的典型用法代码示例。如果您正苦于以下问题:C# BinaryTokenStreamReader.ReadInt方法的具体用法?C# BinaryTokenStreamReader.ReadInt怎么用?C# BinaryTokenStreamReader.ReadInt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Orleans.Serialization.BinaryTokenStreamReader
的用法示例。
在下文中一共展示了BinaryTokenStreamReader.ReadInt方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Deserialize
private static object Deserialize(Type expected, BinaryTokenStreamReader stream)
{
DeserializeCounter++;
var result = new ClassWithCustomSerializer();
result.IntProperty = stream.ReadInt();
result.StringProperty = stream.ReadString();
return result;
}
示例2: Deserialize
public object Deserialize(Type expectedType, BinaryTokenStreamReader reader)
{
if (reader == null)
{
throw new ArgumentNullException("reader");
}
var n = reader.ReadInt();
var bytes = reader.ReadBytes(n);
var formatter = new BinaryFormatter();
object retVal = null;
using (var memoryStream = new MemoryStream(bytes))
{
retVal = formatter.Deserialize(memoryStream);
}
return retVal;
}
示例3: Deserialize
/// <summary>
/// Deserializes an object from a binary stream
/// </summary>
/// <param name="expectedType">The type that is expected to be deserialized</param>
/// <param name="reader">The <see cref="BinaryTokenStreamReader"/></param>
/// <returns>The deserialized object</returns>
public object Deserialize(Type expectedType, BinaryTokenStreamReader reader)
{
if (expectedType == null)
{
throw new ArgumentNullException("expectedType");
}
if (reader == null)
{
throw new ArgumentNullException("reader");
}
var typeHandle = expectedType.TypeHandle;
object parser = null;
if (!Parsers.TryGetValue(typeHandle, out parser))
{
throw new ArgumentException("No parser found for the expected type " + expectedType, "expectedType");
}
int length = reader.ReadInt();
if (length == 0)
{
// the special null case.
return null;
}
byte[] data = reader.ReadBytes(length);
dynamic dynamicParser = parser;
object message = dynamicParser.ParseFrom(data);
return message;
}
示例4: Deserializer
public static object Deserializer(Type expected, BinaryTokenStreamReader stream) =>
Deserialize(stream.ReadBytes(stream.ReadInt()));
示例5: Deserializer
public static System.Object Deserializer(System.Type expected, BinaryTokenStreamReader stream)
{
var result = new HeadersContainer();
Orleans.Serialization.DeserializationContext.Current.RecordObject(result);
var headers = (Headers)stream.ReadInt();
if ((headers & Headers.CACHE_INVALIDATION_HEADER) != Headers.NONE)
{
var n = stream.ReadInt();
if (n > 0)
{
var list = result.CacheInvalidationHeader = new List<ActivationAddress>(n);
for (int i = 0; i < n; i++)
{
list.Add((ActivationAddress)ReadObj(typeof(ActivationAddress), stream));
}
}
}
if ((headers & Headers.CATEGORY) != Headers.NONE)
result.Category = (Categories)stream.ReadByte();
if ((headers & Headers.DEBUG_CONTEXT) != Headers.NONE)
result.DebugContext = stream.ReadString();
if ((headers & Headers.DIRECTION) != Headers.NONE)
result.Direction = (Message.Directions)stream.ReadByte();
if ((headers & Headers.EXPIRATION) != Headers.NONE)
result.Expiration = stream.ReadDateTime();
if ((headers & Headers.FORWARD_COUNT) != Headers.NONE)
result.ForwardCount = stream.ReadInt();
if ((headers & Headers.GENERIC_GRAIN_TYPE) != Headers.NONE)
result.GenericGrainType = stream.ReadString();
if ((headers & Headers.CORRELATION_ID) != Headers.NONE)
result.Id = (Orleans.Runtime.CorrelationId)ReadObj(typeof(Orleans.Runtime.CorrelationId), stream);
if ((headers & Headers.ALWAYS_INTERLEAVE) != Headers.NONE)
result.IsAlwaysInterleave = ReadBool(stream);
if ((headers & Headers.IS_NEW_PLACEMENT) != Headers.NONE)
result.IsNewPlacement = ReadBool(stream);
if ((headers & Headers.READ_ONLY) != Headers.NONE)
result.IsReadOnly = ReadBool(stream);
if ((headers & Headers.IS_UNORDERED) != Headers.NONE)
result.IsUnordered = ReadBool(stream);
if ((headers & Headers.NEW_GRAIN_TYPE) != Headers.NONE)
result.NewGrainType = stream.ReadString();
if ((headers & Headers.REJECTION_INFO) != Headers.NONE)
result.RejectionInfo = stream.ReadString();
if ((headers & Headers.REJECTION_TYPE) != Headers.NONE)
result.RejectionType = (RejectionTypes)stream.ReadByte();
if ((headers & Headers.REQUEST_CONTEXT) != Headers.NONE)
{
var c = stream.ReadInt();
var requestData = new Dictionary<string, object>(c);
for (int i = 0; i < c; i++)
{
requestData[stream.ReadString()] = SerializationManager.DeserializeInner(null, stream);
}
result.RequestContextData = requestData;
}
if ((headers & Headers.RESEND_COUNT) != Headers.NONE)
result.ResendCount = stream.ReadInt();
if ((headers & Headers.RESULT) != Headers.NONE)
result.Result = (Orleans.Runtime.Message.ResponseTypes)stream.ReadByte();
if ((headers & Headers.SENDING_ACTIVATION) != Headers.NONE)
result.SendingActivation = stream.ReadActivationId();
if ((headers & Headers.SENDING_GRAIN) != Headers.NONE)
result.SendingGrain = stream.ReadGrainId();
if ((headers & Headers.SENDING_SILO) != Headers.NONE)
result.SendingSilo = stream.ReadSiloAddress();
if ((headers & Headers.TARGET_ACTIVATION) != Headers.NONE)
result.TargetActivation = stream.ReadActivationId();
if ((headers & Headers.TARGET_GRAIN) != Headers.NONE)
result.TargetGrain = stream.ReadGrainId();
if ((headers & Headers.TARGET_OBSERVER) != Headers.NONE)
result.TargetObserverId = (Orleans.Runtime.GuidId)ReadObj(typeof(Orleans.Runtime.GuidId), stream);
if ((headers & Headers.TARGET_SILO) != Headers.NONE)
result.TargetSilo = stream.ReadSiloAddress();
return (HeadersContainer)result;
//.........这里部分代码省略.........
示例6: VerifyUsingFallbackSerializer
private static void VerifyUsingFallbackSerializer(object ob)
{
var writer = new BinaryTokenStreamWriter();
SerializationManager.FallbackSerializer(ob, writer, ob.GetType());
var bytes = writer.ToByteArray();
byte[] defaultFormatterBytes;
var formatter = new BinaryFormatter();
using (var stream = new MemoryStream())
{
formatter.Serialize(stream, ob);
stream.Flush();
defaultFormatterBytes = stream.ToArray();
}
var reader = new BinaryTokenStreamReader(bytes);
var serToken = reader.ReadToken();
Assert.Equal(SerializationTokenType.Fallback, serToken);
var length = reader.ReadInt();
Assert.Equal(length, defaultFormatterBytes.Length);
var segment = new ArraySegment<byte>(bytes, reader.CurrentPosition, bytes.Length - reader.CurrentPosition);
Assert.True(segment.SequenceEqual(defaultFormatterBytes));
}
示例7: Deserialize
/// <summary>
/// Deserializes an event sequence token
/// </summary>
/// <param name="expected">The expected type.</param>
/// <param name="reader">The binary stream to read from.</param>
/// <returns></returns>
public static object Deserialize(Type expected, BinaryTokenStreamReader reader)
{
var result = new EventSequenceTokenV2(reader.ReadLong(), reader.ReadInt());
DeserializationContext.Current.RecordObject(result);
return result;
}
示例8: Deserialize
/// <summary>
/// Deserializes an event sequence token
/// </summary>
/// <param name="expected">The expected type.</param>
/// <param name="reader">The binary stream to read from.</param>
/// <returns></returns>
public static object Deserialize(Type expected, BinaryTokenStreamReader reader)
{
var deserialized = new EventHubSequenceTokenV2(reader.ReadString(), reader.ReadLong(), reader.ReadInt());
DeserializationContext.Current.RecordObject(deserialized);
return deserialized;
}