public EncodeToken ( MetadataToken token ) : uint | ||
token | MetadataToken | |
return | uint |
protected override void Initialize() { if (_owner.Header != null && _indexEncoder != null) { var stream = _owner.Header.GetStream <TableStream>(); var attributeTable = stream.GetTable <TItem>(); if (attributeTable != null) { uint key = _indexEncoder.EncodeToken(_owner.MetadataToken); var member = attributeTable.GetMemberByKey(_columnIndex, key); if (member != null) { int startIndex = (int)member.MetadataToken.Rid - 1; while (startIndex > 0 && Convert.ToUInt32(attributeTable[startIndex - 1].MetadataRow.GetAllColumns().ElementAt(_columnIndex)) == key) { startIndex--; } for (int index = startIndex; index < attributeTable.Count; index++) { var item = attributeTable[index]; if (Convert.ToUInt32(item.MetadataRow.GetAllColumns().ElementAt(_columnIndex)) != key) { break; } Items.Add(item); } } } } base.Initialize(); }