本文整理汇总了C#中StreamId.GetHashCode方法的典型用法代码示例。如果您正苦于以下问题:C# StreamId.GetHashCode方法的具体用法?C# StreamId.GetHashCode怎么用?C# StreamId.GetHashCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StreamId
的用法示例。
在下文中一共展示了StreamId.GetHashCode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MakeSubscriptionGuid
/// <summary>
/// Create a subscriptionId that is unique per grainId, grainType, namespace combination.
/// </summary>
/// <param name="grainIdTypeCode"></param>
/// <param name="streamId"></param>
/// <returns></returns>
private Guid MakeSubscriptionGuid(int grainIdTypeCode, StreamId streamId)
{
// next 2 shorts ing guid are from namespace hash
int namespaceHash = streamId.Namespace.GetHashCode();
byte[] namespaceHashByes = BitConverter.GetBytes(namespaceHash);
short s1 = BitConverter.ToInt16(namespaceHashByes, 0);
short s2 = BitConverter.ToInt16(namespaceHashByes, 2);
// Tailing 8 bytes of the guid are from the hash of the streamId Guid and a hash of the full streamId.
// get streamId guid hash code
int streamIdGuidHash = streamId.Guid.GetHashCode();
// get full streamId hash code
int streamIdHash = streamId.GetHashCode();
// build guid tailing 8 bytes from grainIdHash and the hash of the full streamId.
var tail = new List<byte>();
tail.AddRange(BitConverter.GetBytes(streamIdGuidHash));
tail.AddRange(BitConverter.GetBytes(streamIdHash));
// make guid.
// - First int is grain type
// - Two shorts from namespace hash
// - 8 byte tail from streamId Guid and full stream hash.
return SubscriptionMarker.MarkAsImplictSubscriptionId(new Guid(grainIdTypeCode, s1, s2, tail.ToArray()));
}