Beispiel #1
0
        public void ResolveReferences(Dictionary <Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems)
        {
            if (!memberReferencesCollection.TryGetValue(m_Declaration.ObjectType, out List <MemberReference> value))
            {
                return;
            }
            foreach (MemberReference item in value)
            {
                switch (item.MemberName)
                {
                case MemberName.DataSet:
                    Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                    Global.Tracer.Assert(referenceableItems[item.RefID] is DataSet);
                    Global.Tracer.Assert(m_dataSet != (DataSet)referenceableItems[item.RefID]);
                    m_dataSet = (DataSet)referenceableItems[item.RefID];
                    break;

                case MemberName.SortTarget:
                    Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                    Global.Tracer.Assert(referenceableItems[item.RefID] is ISortFilterScope);
                    Global.Tracer.Assert(m_sortTarget != (ISortFilterScope)referenceableItems[item.RefID]);
                    m_sortTarget = (ISortFilterScope)referenceableItems[item.RefID];
                    break;

                case MemberName.DetailScopeSubReports:
                    if (m_detailScopeSubReports == null)
                    {
                        m_detailScopeSubReports = new List <SubReport>();
                    }
                    Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                    Global.Tracer.Assert(referenceableItems[item.RefID] is SubReport);
                    Global.Tracer.Assert(!m_detailScopeSubReports.Contains((SubReport)referenceableItems[item.RefID]));
                    m_detailScopeSubReports.Add((SubReport)referenceableItems[item.RefID]);
                    break;

                case MemberName.SortExpressionScope:
                    Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                    Global.Tracer.Assert(referenceableItems[item.RefID] is ISortFilterScope);
                    Global.Tracer.Assert(m_sortExpressionScope != (ISortFilterScope)referenceableItems[item.RefID]);
                    m_sortExpressionScope = (ISortFilterScope)referenceableItems[item.RefID];
                    break;

                case MemberName.GroupsInSortTarget:
                    if (m_groupsInSortTarget == null)
                    {
                        m_groupsInSortTarget = new GroupingList();
                    }
                    Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                    Global.Tracer.Assert(referenceableItems[item.RefID] is Grouping);
                    Global.Tracer.Assert(!m_groupsInSortTarget.Contains((Grouping)referenceableItems[item.RefID]));
                    m_groupsInSortTarget.Add((Grouping)referenceableItems[item.RefID]);
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
        internal void Add(GroupingList scopeDefs, List <object>[] scopeValues, int value)
        {
            if (scopeValues == null || scopeValues.Length == 0)
            {
                Global.Tracer.Assert(scopeDefs == null || scopeDefs.Count == 0, "(null == scopeDefs || 0 == scopeDefs.Count)");
                m_lookupInt = value;
                return;
            }
            bool lookup = true;

            if (m_lookupTable == null)
            {
                m_lookupTable = new Hashtable();
                lookup        = false;
            }
            Hashtable hashEntries = m_lookupTable;
            int       num         = 0;
            int       num2        = 0;

            for (int i = 0; i < scopeValues.Length; i++)
            {
                List <object> list = scopeValues[i];
                if (list == null)
                {
                    num2++;
                    continue;
                }
                num = list.Count;
                if (i == scopeValues.Length - 1)
                {
                    num--;
                }
                GetNullScopeEntries(num2, ref hashEntries, ref lookup);
                for (int j = 0; j < num; j++)
                {
                    Hashtable hashtable = (!lookup) ? null : ((Hashtable)hashEntries[list[j]]);
                    if (hashtable == null)
                    {
                        hashtable = new Hashtable();
                        hashEntries.Add(list[j], hashtable);
                        lookup = false;
                    }
                    hashEntries = hashtable;
                }
                num2 = 0;
            }
            object key = 1;

            if (scopeValues[scopeValues.Length - 1] != null)
            {
                key = scopeValues[scopeValues.Length - 1][num];
            }
            else
            {
                GetNullScopeEntries(num2, ref hashEntries, ref lookup);
            }
            Global.Tracer.Assert(!hashEntries.Contains(key), "(!hashEntries.Contains(lastKey))");
            hashEntries.Add(key, value);
        }
 internal UserSortFilterContext(UserSortFilterContext parentContext, Microsoft.ReportingServices.ReportIntermediateFormat.SubReport subReport)
 {
     m_runtimeSortFilterInfo  = parentContext.RuntimeSortFilterInfo;
     m_dataSetGlobalID        = parentContext.DataSetGlobalId;
     m_inProcessUserSortPhase = parentContext.m_inProcessUserSortPhase;
     subReport.UpdateSubReportScopes(parentContext);
     m_containingScopes      = subReport.ContainingScopes;
     m_detailScopeSubReports = subReport.DetailScopeSubReports;
 }
 internal void ResetContextForTopLevelDataSet()
 {
     m_dataSetGlobalID = -1;
     m_currentSortFilterEventSource = null;
     m_runtimeSortFilterInfo        = null;
     m_currentContainingScope       = null;
     m_containingScopes             = null;
     m_inProcessUserSortPhase       = null;
 }
        internal void UpdateSubReportScopes(Microsoft.ReportingServices.OnDemandProcessing.TablixProcessing.UserSortFilterContext context)
        {
            if (m_containingScopes != null && 0 < m_containingScopes.Count && m_containingScopes.LastEntry == null)
            {
                if (context.DetailScopeSubReports != null)
                {
                    m_detailScopeSubReports = context.CloneDetailScopeSubReports();
                }
                else
                {
                    m_detailScopeSubReports = new List <SubReport>();
                }
                m_detailScopeSubReports.Add(this);
            }
            else
            {
                m_detailScopeSubReports = context.DetailScopeSubReports;
            }
            if (context.ContainingScopes != null)
            {
                if (m_containingScopes != null && 0 < m_containingScopes.Count)
                {
                    m_containingScopes.InsertRange(0, context.ContainingScopes);
                }
                else
                {
                    m_containingScopes = context.ContainingScopes;
                }
            }
            if (m_report == null || m_report.EventSources == null)
            {
                return;
            }
            int count = m_report.EventSources.Count;

            for (int i = 0; i < count; i++)
            {
                IInScopeEventSource inScopeEventSource = m_report.EventSources[i];
                if (inScopeEventSource.UserSort != null)
                {
                    inScopeEventSource.UserSort.DetailScopeSubReports = m_detailScopeSubReports;
                }
                if (m_containingScopes != null && 0 < m_containingScopes.Count)
                {
                    if (inScopeEventSource.ContainingScopes != null && 0 < inScopeEventSource.ContainingScopes.Count)
                    {
                        inScopeEventSource.ContainingScopes.InsertRange(0, m_containingScopes);
                        continue;
                    }
                    inScopeEventSource.IsSubReportTopLevelScope = true;
                    inScopeEventSource.ContainingScopes         = m_containingScopes;
                }
            }
        }
Beispiel #6
0
        internal new GroupingList Clone()
        {
            int          count        = Count;
            GroupingList groupingList = new GroupingList(count);

            for (int i = 0; i < count; i++)
            {
                groupingList.Add(this[i]);
            }
            return(groupingList);
        }
Beispiel #7
0
        internal object PublishClone(AutomaticSubtotalContext context, ReportHierarchyNode owner)
        {
            int          count        = Count;
            GroupingList groupingList = new GroupingList(count);

            for (int i = 0; i < count; i++)
            {
                groupingList.Add(this[i].PublishClone(context, owner));
            }
            return(groupingList);
        }
 internal override void InitializeRVDirectionDependentItems(InitializationContext context)
 {
     m_containingScopes = context.GetContainingScopes();
     for (int i = 0; i < m_containingScopes.Count; i++)
     {
         m_containingScopes[i].SaveGroupExprValues = true;
     }
     if (m_isDetailScope)
     {
         m_containingScopes.Add(null);
     }
 }
Beispiel #9
0
        public override void ResolveReferences(Dictionary <Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems)
        {
            base.ResolveReferences(memberReferencesCollection, referenceableItems);
            if (!memberReferencesCollection.TryGetValue(m_Declaration.ObjectType, out List <MemberReference> value))
            {
                return;
            }
            foreach (MemberReference item in value)
            {
                switch (item.MemberName)
                {
                case MemberName.ContainingScopes:
                    if (m_containingScopes == null)
                    {
                        m_containingScopes = new GroupingList();
                    }
                    if (item.RefID != -2)
                    {
                        Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                        Global.Tracer.Assert(referenceableItems[item.RefID] is Grouping);
                        Global.Tracer.Assert(!m_containingScopes.Contains((Grouping)referenceableItems[item.RefID]));
                        m_containingScopes.Add((Grouping)referenceableItems[item.RefID]);
                    }
                    else
                    {
                        m_containingScopes.Add(null);
                    }
                    break;

                case MemberName.RecursiveMember:
                {
                    if (referenceableItems.TryGetValue(item.RefID, out IReferenceable value2))
                    {
                        m_recursiveMember = (value2 as TablixMember);
                    }
                    break;
                }

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
        internal int Lookup(GroupingList scopeDefs, List <object>[] scopeValues)
        {
            object obj = null;

            if (scopeValues == null || scopeValues.Length == 0)
            {
                Global.Tracer.Assert(scopeDefs == null || scopeDefs.Count == 0, "(null == scopeDefs || 0 == scopeDefs.Count)");
                obj = m_lookupInt;
            }
            else
            {
                Hashtable hashtable = m_lookupTable;
                int       num       = 0;
                for (int i = 0; i < scopeValues.Length; i++)
                {
                    List <object> list = scopeValues[i];
                    if (list == null)
                    {
                        num++;
                        continue;
                    }
                    hashtable = (Hashtable)hashtable[num];
                    for (int j = 0; j < list.Count; j++)
                    {
                        obj = hashtable[list[j]];
                        if (i < scopeValues.Length - 1 || j < list.Count - 1)
                        {
                            hashtable = (Hashtable)obj;
                            Global.Tracer.Assert(hashtable != null, "(null != hashEntries)");
                        }
                    }
                    num = 0;
                }
                if (scopeValues[scopeValues.Length - 1] == null)
                {
                    hashtable = (Hashtable)hashtable[num];
                    obj       = hashtable[1];
                }
            }
            Global.Tracer.Assert(obj is int, "(value is int)");
            return((int)obj);
        }
Beispiel #11
0
        public void Deserialize(IntermediateFormatReader reader)
        {
            reader.RegisterDeclaration(m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.DataSet:
                    m_dataSet = reader.ReadReference <DataSet>(this);
                    break;

                case MemberName.SortExpressionScope:
                    m_sortExpressionScope = reader.ReadReference <ISortFilterScope>(this);
                    break;

                case MemberName.GroupsInSortTarget:
                    m_groupsInSortTarget = reader.ReadListOfReferences <GroupingList, Grouping>(this);
                    break;

                case MemberName.SortTarget:
                    m_sortTarget = reader.ReadReference <ISortFilterScope>(this);
                    break;

                case MemberName.SortExpressionIndex:
                    m_sortExpressionIndex = reader.ReadInt32();
                    break;

                case MemberName.DetailScopeSubReports:
                    m_detailScopeSubReports = reader.ReadGenericListOfReferences <SubReport>(this);
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
        public override void Deserialize(IntermediateFormatReader reader)
        {
            base.Deserialize(reader);
            reader.RegisterDeclaration(m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.Parameters:
                    m_parameters = reader.ReadGenericListOfRIFObjects <ParameterValue>();
                    break;

                case MemberName.NoRowsMessage:
                    m_noRowsMessage = (ExpressionInfo)reader.ReadRIFObject();
                    break;

                case MemberName.MergeTransactions:
                    m_mergeTransactions = reader.ReadBoolean();
                    break;

                case MemberName.ContainingScopes:
                    if (reader.ReadListOfReferencesNoResolution(this) == 0)
                    {
                        m_containingScopes = new GroupingList();
                    }
                    break;

                case MemberName.IsTablixCellScope:
                    m_isTablixCellScope = reader.ReadBoolean();
                    break;

                case MemberName.ReportName:
                    m_reportName = reader.ReadString();
                    break;

                case MemberName.OmitBorderOnPageBreak:
                    m_omitBorderOnPageBreak = reader.ReadBoolean();
                    break;

                case MemberName.KeepTogether:
                    m_keepTogether = reader.ReadBoolean();
                    break;

                case MemberName.Location:
                    m_location = (Microsoft.ReportingServices.ReportPublishing.LocationFlags)reader.ReadEnum();
                    break;

                case MemberName.IndexInCollection:
                    m_indexInCollection = reader.ReadInt32();
                    break;

                case MemberName.ContainingSection:
                    m_containingSection = reader.ReadReference <ReportSection>(this);
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
 internal bool PopulateRuntimeSortFilterEventInfo(OnDemandProcessingContext odpContext, Microsoft.ReportingServices.ReportIntermediateFormat.DataSet myDataSet)
 {
     if (odpContext.TopLevelContext.UserSortFilterInfo == null || odpContext.TopLevelContext.UserSortFilterInfo.OdpSortInfo == null || odpContext.TopLevelContext.OldSortFilterEventInfo == null)
     {
         return(false);
     }
     if (-1 != m_dataSetGlobalID)
     {
         return(false);
     }
     m_runtimeSortFilterInfo = null;
     EventInformation.OdpSortEventInfo odpSortInfo = odpContext.TopLevelContext.UserSortFilterInfo.OdpSortInfo;
     for (int i = 0; i < odpSortInfo.Count; i++)
     {
         string uniqueNameAt = odpSortInfo.GetUniqueNameAt(i);
         Microsoft.ReportingServices.ReportIntermediateFormat.SortFilterEventInfo sortFilterEventInfo = odpContext.TopLevelContext.OldSortFilterEventInfo[uniqueNameAt];
         if (sortFilterEventInfo == null || sortFilterEventInfo.EventSource.UserSort == null)
         {
             continue;
         }
         int num = sortFilterEventInfo.EventSource.UserSort.SubReportDataSetGlobalId;
         if (-1 == num)
         {
             num = sortFilterEventInfo.EventSource.UserSort.DataSet.GlobalID;
         }
         if (num == myDataSet.GlobalID)
         {
             if (m_runtimeSortFilterInfo == null)
             {
                 m_runtimeSortFilterInfo = new List <IReference <RuntimeSortFilterEventInfo> >();
             }
             RuntimeSortFilterEventInfo runtimeSortFilterEventInfo = new RuntimeSortFilterEventInfo(sortFilterEventInfo.EventSource, uniqueNameAt, odpSortInfo.GetSortDirectionAt(i), sortFilterEventInfo.EventSourceScopeInfo, odpContext, (m_currentContainingScope == null) ? 1 : m_currentContainingScope.Value().Depth);
             runtimeSortFilterEventInfo.SelfReference.UnPinValue();
             m_runtimeSortFilterInfo.Add(runtimeSortFilterEventInfo.SelfReference);
         }
     }
     if (m_runtimeSortFilterInfo != null)
     {
         int count = m_runtimeSortFilterInfo.Count;
         for (int j = 0; j < count; j++)
         {
             IReference <RuntimeSortFilterEventInfo> reference = m_runtimeSortFilterInfo[j];
             using (reference.PinValue())
             {
                 RuntimeSortFilterEventInfo runtimeSortFilterEventInfo2 = reference.Value();
                 IInScopeEventSource        eventSource = runtimeSortFilterEventInfo2.EventSource;
                 Microsoft.ReportingServices.ReportIntermediateFormat.ISortFilterScope sortExpressionScope = eventSource.UserSort.SortExpressionScope;
                 if (sortExpressionScope != null)
                 {
                     sortExpressionScope.IsSortFilterExpressionScope = SetSortFilterInfo(sortExpressionScope.IsSortFilterExpressionScope, count, j);
                 }
                 Microsoft.ReportingServices.ReportIntermediateFormat.ISortFilterScope sortTarget = eventSource.UserSort.SortTarget;
                 if (sortTarget != null)
                 {
                     sortTarget.IsSortFilterTarget = SetSortFilterInfo(sortTarget.IsSortFilterTarget, count, j);
                 }
                 if (eventSource.ContainingScopes != null && 0 < eventSource.ContainingScopes.Count)
                 {
                     int num2 = 0;
                     int num3 = 0;
                     for (int k = 0; k < eventSource.ContainingScopes.Count; k++)
                     {
                         Microsoft.ReportingServices.ReportIntermediateFormat.Grouping grouping = eventSource.ContainingScopes[k];
                         if (grouping != null && grouping.IsDetail)
                         {
                             continue;
                         }
                         List <object> list = runtimeSortFilterEventInfo2.SortSourceScopeInfo[num2];
                         if (grouping != null)
                         {
                             if (grouping.SortFilterScopeInfo == null)
                             {
                                 grouping.SortFilterScopeInfo = new List <object> [count];
                                 for (int l = 0; l < count; l++)
                                 {
                                     grouping.SortFilterScopeInfo[l] = null;
                                 }
                                 grouping.SortFilterScopeIndex = new int[count];
                                 for (int m = 0; m < count; m++)
                                 {
                                     grouping.SortFilterScopeIndex[m] = -1;
                                 }
                             }
                             grouping.SortFilterScopeInfo[j]  = list;
                             grouping.SortFilterScopeIndex[j] = num2;
                         }
                         else
                         {
                             List <Microsoft.ReportingServices.ReportIntermediateFormat.SubReport> detailScopeSubReports = eventSource.UserSort.DetailScopeSubReports;
                             Microsoft.ReportingServices.ReportIntermediateFormat.ReportItem       reportItem            = (detailScopeSubReports == null || num3 >= detailScopeSubReports.Count) ? eventSource.Parent : detailScopeSubReports[num3++].Parent;
                             while (reportItem != null && !reportItem.IsDataRegion)
                             {
                                 reportItem = reportItem.Parent;
                             }
                             Global.Tracer.Assert(reportItem.IsDataRegion, "(parent.IsDataRegion)");
                             Microsoft.ReportingServices.ReportIntermediateFormat.DataRegion dataRegion = (Microsoft.ReportingServices.ReportIntermediateFormat.DataRegion)reportItem;
                             if (dataRegion.SortFilterSourceDetailScopeInfo == null)
                             {
                                 dataRegion.SortFilterSourceDetailScopeInfo = new int[count];
                                 for (int n = 0; n < count; n++)
                                 {
                                     dataRegion.SortFilterSourceDetailScopeInfo[n] = -1;
                                 }
                             }
                             Global.Tracer.Assert(list != null && 1 == list.Count, "(null != scopeValues && 1 == scopeValues.Count)");
                             dataRegion.SortFilterSourceDetailScopeInfo[j] = (int)list[0];
                         }
                         num2++;
                     }
                 }
                 Microsoft.ReportingServices.ReportIntermediateFormat.GroupingList groupsInSortTarget = eventSource.UserSort.GroupsInSortTarget;
                 if (groupsInSortTarget != null)
                 {
                     for (int num4 = 0; num4 < groupsInSortTarget.Count; num4++)
                     {
                         groupsInSortTarget[num4].NeedScopeInfoForSortFilterExpression = SetSortFilterInfo(groupsInSortTarget[num4].NeedScopeInfoForSortFilterExpression, count, j);
                     }
                 }
                 List <int> peerSortFilters = eventSource.GetPeerSortFilters(create: false);
                 if (peerSortFilters == null || peerSortFilters.Count == 0)
                 {
                     continue;
                 }
                 if (runtimeSortFilterEventInfo2.PeerSortFilters == null)
                 {
                     runtimeSortFilterEventInfo2.PeerSortFilters = new Hashtable();
                 }
                 for (int num5 = 0; num5 < peerSortFilters.Count; num5++)
                 {
                     if (eventSource.ID != peerSortFilters[num5])
                     {
                         runtimeSortFilterEventInfo2.PeerSortFilters.Add(peerSortFilters[num5], null);
                     }
                 }
             }
         }
     }
     return(true);
 }
Beispiel #14
0
        public override void Deserialize(IntermediateFormatReader reader)
        {
            base.Deserialize(reader);
            reader.RegisterDeclaration(m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.Paragraphs:
                    m_paragraphs = reader.ReadGenericListOfRIFObjects <Paragraph>();
                    break;

                case MemberName.Value:
                {
                    TextRun        orCreateSingleTextRun = GetOrCreateSingleTextRun(reader);
                    ExpressionInfo expressionInfo        = (ExpressionInfo)reader.ReadRIFObject();
                    m_hasValue = true;
                    m_hasExpressionBasedValue   = expressionInfo.IsExpression;
                    orCreateSingleTextRun.Value = expressionInfo;
                    if (m_styleClass != null)
                    {
                        orCreateSingleTextRun.Paragraph.StyleClass = new ParagraphFilteredStyle(m_styleClass);
                        orCreateSingleTextRun.StyleClass           = new TextRunFilteredStyle(m_styleClass);
                        m_styleClass = new TextBoxFilteredStyle(m_styleClass);
                    }
                    break;
                }

                case MemberName.CanScrollVertically:
                    m_canScrollVertically = reader.ReadBoolean();
                    break;

                case MemberName.CanGrow:
                    m_canGrow = reader.ReadBoolean();
                    break;

                case MemberName.CanShrink:
                    m_canShrink = reader.ReadBoolean();
                    break;

                case MemberName.HideDuplicates:
                    m_hideDuplicates = reader.ReadString();
                    break;

                case MemberName.Action:
                    m_action = (Action)reader.ReadRIFObject();
                    break;

                case MemberName.IsToggle:
                    m_isToggle = reader.ReadBoolean();
                    break;

                case MemberName.InitialToggleState:
                    m_initialToggleState = (ExpressionInfo)reader.ReadRIFObject();
                    break;

                case MemberName.ValueReferenced:
                    m_valueReferenced = reader.ReadBoolean();
                    break;

                case MemberName.TextRunValueReferenced:
                    m_textRunValueReferenced = reader.ReadBoolean();
                    break;

                case MemberName.RecursiveSender:
                    m_recursiveSender = reader.ReadBoolean();
                    break;

                case MemberName.DataElementStyleAttribute:
                    m_dataElementStyleAttribute = reader.ReadBoolean();
                    break;

                case MemberName.ContainingScopes:
                    if (reader.ReadListOfReferencesNoResolution(this) == 0)
                    {
                        m_containingScopes = new GroupingList();
                    }
                    break;

                case MemberName.UserSort:
                    m_userSort = (EndUserSort)reader.ReadRIFObject();
                    break;

                case MemberName.IsTablixCellScope:
                    m_isTablixCellScope = reader.ReadBoolean();
                    break;

                case MemberName.IsSubReportTopLevelScope:
                    m_isSubReportTopLevelScope = reader.ReadBoolean();
                    break;

                case MemberName.DataType:
                    GetOrCreateSingleTextRun(reader).DataType = (DataType)reader.ReadEnum();
                    break;

                case MemberName.KeepTogether:
                    m_keepTogether = reader.ReadBoolean();
                    break;

                case MemberName.SequenceID:
                    m_sequenceID = reader.ReadInt32();
                    break;

                case MemberName.RecursiveMember:
                    m_recursiveMember = reader.ReadReference <TablixMember>(this);
                    break;

                case MemberName.HasExpressionBasedValue:
                    m_hasExpressionBasedValue = reader.ReadBoolean();
                    break;

                case MemberName.HasValue:
                    m_hasValue = reader.ReadBoolean();
                    break;

                case MemberName.IsSimple:
                    m_isSimple = reader.ReadBoolean();
                    break;

                case MemberName.HasNonRecursiveSender:
                    m_hasNonRecursiveSender = reader.ReadBoolean();
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }