コード例 #1
0
        public void TrackFactActivity(FactActivityType activityType, string classType, int classInstanceId)
        {
            if (classType == null)
            {
                throw new RuleEngineArgumentNullException(string.Format(CultureInfo.CurrentCulture, "nullArgument", new object[] { "strClassName" }), base.GetType().FullName, "objectType");
            }
            // Create a builder to write xml to
            StringBuilder builder = new StringBuilder(200);

            using (XmlWriter xWriter = XmlWriter.Create(builder,
                    new XmlWriterSettings { OmitXmlDeclaration = true, ConformanceLevel = ConformanceLevel.Fragment }))
            {
                AppendTraceHeader(xWriter);

                this.AppendContextHeader(m_workingMemoryUpdateTrace, xWriter);

                xWriter.WriteElementString("Description", String.Format("{0}ing {1} [{2}]",
                    activityType.ToString(), classType, classInstanceId));

                switch (activityType)
                {
                    case FactActivityType.Assert:
                        xWriter.WriteElementString(m_operationTypeTrace, m_assertOperationTrace);
                        break;

                    case FactActivityType.Retract:
                        xWriter.WriteElementString(m_operationTypeTrace, m_retractOperationTrace);
                        break;

                    case FactActivityType.Update:
                        xWriter.WriteElementString(m_operationTypeTrace, m_updateOperationTrace);
                        break;

                    case FactActivityType.AssertUnrecognized:
                        xWriter.WriteElementString(m_operationTypeTrace, m_assertUnrecognizedOperationTrace);
                        break;

                    case FactActivityType.RetractUnrecognized:
                        xWriter.WriteElementString(m_operationTypeTrace, m_retractUnrecognizedOperationTrace);
                        break;

                    case FactActivityType.UpdateUnrecognized:
                        xWriter.WriteElementString(m_operationTypeTrace, m_updateUnrecognizedOperationTrace);
                        break;

                    case FactActivityType.RetractNotPresent:
                        xWriter.WriteElementString(m_operationTypeTrace, m_retractNotPresentOperationTrace);
                        break;

                    case FactActivityType.UpdateNotPresent:
                        xWriter.WriteElementString(m_operationTypeTrace, m_updateNotPresentOperationTrace);
                        break;

                    default:
                        xWriter.WriteElementString(m_operationTypeTrace, m_unrecognizedOperationTrace);
                        break;
                }
                xWriter.WriteElementString(m_objectTypeTrace, classType);
                xWriter.WriteElementString(m_objectInstanceTrace, classInstanceId.ToString(CultureInfo.CurrentCulture));

                CloseTrace(xWriter);
            }

            Log(builder);
        }