实例介绍
NRules是一个开源的.NET生产规则引擎,基于Rete匹配算法。规则使用C#内部DSL进行编写。
【实例截图】【核心代码】
文件清单
└── NRules-8794a923105cfce27dd8394e26e218a654735a5d
├── appveyor.yml
├── bench
│ └── NRules.Benchmark
│ ├── NRules.Benchmark
│ │ ├── Expressions
│ │ │ ├── BenchmarkBase.cs
│ │ │ ├── BenchmarkLhsExpression.cs
│ │ │ └── BenchmarkRuleAction.cs
│ │ ├── Meta
│ │ │ ├── BenchmarkBase.cs
│ │ │ ├── BenchmarkMultipleRules.cs
│ │ │ ├── BenchmarkOneFactRule.cs
│ │ │ ├── BenchmarkTwoFactAggregateRule.cs
│ │ │ └── BenchmarkTwoFactJoinRule.cs
│ │ ├── NRules.Benchmark.csproj
│ │ └── Program.cs
│ └── NRules.Benchmark.sln
├── build.bat
├── build.ps1
├── build.sh
├── CONTRIBUTING.md
├── DevSigningKey.sha1
├── DevSigningKey.snk
├── Directory.Build.props
├── Directory.Packages.props
├── docs
│ ├── api
│ │ └── index.md
│ ├── apidoc
│ │ ├── NRules.AgendaFilters.md
│ │ ├── NRules.Aggregators.md
│ │ ├── NRules.Diagnostics.Dgml.md
│ │ ├── NRules.Diagnostics.md
│ │ ├── NRules.Extensibility.md
│ │ ├── NRules.Fluent.Dsl.md
│ │ ├── NRules.Fluent.md
│ │ ├── NRules.Integration.Autofac.md
│ │ ├── NRules.Json.md
│ │ ├── NRules.md
│ │ ├── NRules.RuleModel.Builders.md
│ │ ├── NRules.RuleModel.md
│ │ └── NRules.Testing.md
│ ├── articles
│ │ ├── advanced
│ │ │ ├── action-interceptor.md
│ │ │ ├── expression-compiler.md
│ │ │ ├── json-serialization.md
│ │ │ ├── rule-builder.md
│ │ │ └── toc.yml
│ │ ├── agenda-filters.md
│ │ ├── architecture.md
│ │ ├── diagnostics.md
│ │ ├── dsl-extensions.md
│ │ ├── fluent-rules-dsl.md
│ │ ├── fluent-rules-loading.md
│ │ ├── forward-chaining.md
│ │ ├── getting-started.md
│ │ ├── reactive-linq-queries.md
│ │ ├── rule-dependencies.md
│ │ ├── toc.yml
│ │ └── unit-testing-rules.md
│ ├── docfx.json
│ ├── filterConfig.yml
│ ├── images
│ │ ├── logo.png
│ │ ├── NRules-Architecture.png
│ │ ├── NRules-Components.png
│ │ ├── NRules-Diagnostics-Visualizer-Performance.png
│ │ ├── NRules-Diagnostics-Visualizer-Performance-Tooltip.png
│ │ └── NRules-Diagnostics-Visualizer.png
│ ├── index.md
│ └── toc.yml
├── LICENSE.txt
├── README.md
├── samples
│ ├── JsonRules
│ │ ├── Domain
│ │ │ ├── Customer.cs
│ │ │ └── Order.cs
│ │ ├── JsonRules.csproj
│ │ ├── JsonRules.sln
│ │ └── Program.cs
│ ├── RuleBuilder
│ │ ├── CustomRuleRepository.cs
│ │ ├── Domain
│ │ │ ├── Customer.cs
│ │ │ └── Order.cs
│ │ ├── Program.cs
│ │ ├── RuleBuilder.csproj
│ │ └── RuleBuilder.sln
│ └── SimpleRules
│ ├── Domain
│ │ ├── Account.cs
│ │ ├── Customer.cs
│ │ └── Order.cs
│ ├── Program.cs
│ ├── Rules
│ │ ├── ActiveCustomerAccountRule.cs
│ │ ├── ActiveDelinquentAccountRule.cs
│ │ ├── AllActiveAccountsRule.cs
│ │ ├── DiscountNotificationRule.cs
│ │ ├── ImportantCustomerRule.cs
│ │ ├── LargeTotalRule.cs
│ │ ├── MultipleOrdersRule.cs
│ │ ├── NoActiveDelinquentAccountsRule.cs
│ │ ├── OrderAmountCalculationRule.cs
│ │ ├── OrdersByCustomerRule.cs
│ │ └── PreferredCustomerDiscountRule.cs
│ ├── SimpleRules.csproj
│ └── SimpleRules.sln
├── SigningKey.snk
├── src
│ ├── NRules
│ │ ├── InternalsVisibleTo.props
│ │ ├── NRules
│ │ │ ├── ActionContext.cs
│ │ │ ├── ActionExecutor.cs
│ │ │ ├── ActionInvocation.cs
│ │ │ ├── Activation.cs
│ │ │ ├── ActivationQueue.cs
│ │ │ ├── Agenda.cs
│ │ │ ├── AgendaExpressionEvaluationException.cs
│ │ │ ├── AgendaFilters
│ │ │ │ ├── ActivationExpression.cs
│ │ │ │ ├── AgendaContext.cs
│ │ │ │ ├── IAgendaFilter.cs
│ │ │ │ ├── IStatefulAgendaFilter.cs
│ │ │ │ ├── KeyChangeAgendaFilter.cs
│ │ │ │ └── PredicateAgendaFilter.cs
│ │ │ ├── Aggregators
│ │ │ │ ├── AggregateExpression.cs
│ │ │ │ ├── AggregateExpressionExtensions.cs
│ │ │ │ ├── AggregationContext.cs
│ │ │ │ ├── AggregationResult.cs
│ │ │ │ ├── AggregatorRegistry.cs
│ │ │ │ ├── CollectionAggregator.cs
│ │ │ │ ├── CollectionAggregatorFactory.cs
│ │ │ │ ├── Collections
│ │ │ │ │ ├── DefaultKeyMap.cs
│ │ │ │ │ ├── FactCollection.cs
│ │ │ │ │ ├── FactGrouping.cs
│ │ │ │ │ ├── FactLookup.cs
│ │ │ │ │ └── SortedFactCollection.cs
│ │ │ │ ├── FlatteningAggregator.cs
│ │ │ │ ├── FlatteningAggregatorFactory.cs
│ │ │ │ ├── GroupByAggregator.cs
│ │ │ │ ├── GroupByAggregatorFactory.cs
│ │ │ │ ├── IAggregator.cs
│ │ │ │ ├── IAggregatorFactory.cs
│ │ │ │ ├── LookupAggregator.cs
│ │ │ │ ├── MultiKeySortedAggregator.cs
│ │ │ │ ├── ProjectionAggregator.cs
│ │ │ │ ├── ProjectionAggregatorFactory.cs
│ │ │ │ ├── SortCondition.cs
│ │ │ │ └── SortedAggregator.cs
│ │ │ ├── BatchOptions.cs
│ │ │ ├── Collections
│ │ │ │ ├── OrderedDictionary.cs
│ │ │ │ ├── OrderedHashSet.cs
│ │ │ │ ├── OrderedPriorityQueue.cs
│ │ │ │ └── PriorityQueue.cs
│ │ │ ├── CompiledRule.cs
│ │ │ ├── Diagnostics
│ │ │ │ ├── AgendaEventArgs.cs
│ │ │ │ ├── AgendaExpressionErrorEventArgs.cs
│ │ │ │ ├── AgendaExpressionEventArgs.cs
│ │ │ │ ├── Dgml
│ │ │ │ │ ├── Category.cs
│ │ │ │ │ ├── Condition.cs
│ │ │ │ │ ├── DgmlWriter.cs
│ │ │ │ │ ├── DirectedGraph.cs
│ │ │ │ │ ├── Link.cs
│ │ │ │ │ ├── Node.cs
│ │ │ │ │ ├── Property.cs
│ │ │ │ │ ├── Setter.cs
│ │ │ │ │ ├── Style.cs
│ │ │ │ │ └── XmlWriterExtensions.cs
│ │ │ │ ├── EventAggregator.cs
│ │ │ │ ├── ExpressionEventArgs.cs
│ │ │ │ ├── IRecoverableError.cs
│ │ │ │ ├── ISessionSchemaProvider.cs
│ │ │ │ ├── LhsExpressionErrorEventArgs.cs
│ │ │ │ ├── LhsExpressionEventArgs.cs
│ │ │ │ ├── MetricsAggregator.cs
│ │ │ │ ├── NodeInfo.cs
│ │ │ │ ├── NodeMetrics.cs
│ │ │ │ ├── PerfCounter.cs
│ │ │ │ ├── ReteGraph.cs
│ │ │ │ ├── ReteLink.cs
│ │ │ │ ├── ReteNode.cs
│ │ │ │ ├── RhsExpressionErrorEventArgs.cs
│ │ │ │ ├── RhsExpressionEventArgs.cs
│ │ │ │ ├── SchemaBuilder.cs
│ │ │ │ ├── SchemaReteVisitor.cs
│ │ │ │ └── WorkingMemoryEventArgs.cs
│ │ │ ├── ExecutionContext.cs
│ │ │ ├── ExpressionEvaluationException.cs
│ │ │ ├── Extensibility
│ │ │ │ ├── DependencyResolver.cs
│ │ │ │ ├── ExpressionCompiler.cs
│ │ │ │ ├── IActionInterceptor.cs
│ │ │ │ ├── IActionInvocation.cs
│ │ │ │ └── ResolutionContext.cs
│ │ │ ├── FactResult.cs
│ │ │ ├── IdGenerator.cs
│ │ │ ├── LinkedFactSet.cs
│ │ │ ├── LinkedFactSource.cs
│ │ │ ├── NRules.csproj
│ │ │ ├── Rete
│ │ │ │ ├── AggregateFactSource.cs
│ │ │ │ ├── AggregateNode.cs
│ │ │ │ ├── Aggregation.cs
│ │ │ │ ├── AlphaMemory.cs
│ │ │ │ ├── AlphaMemoryNode.cs
│ │ │ │ ├── AlphaNode.cs
│ │ │ │ ├── BetaMemory.cs
│ │ │ │ ├── BetaMemoryNode.cs
│ │ │ │ ├── BetaNode.cs
│ │ │ │ ├── BinaryBetaNode.cs
│ │ │ │ ├── BindingNode.cs
│ │ │ │ ├── DummyNode.cs
│ │ │ │ ├── ExistsNode.cs
│ │ │ │ ├── FactAggregator.cs
│ │ │ │ ├── Fact.cs
│ │ │ │ ├── IndexMap.cs
│ │ │ │ ├── INode.cs
│ │ │ │ ├── IObjectSink.cs
│ │ │ │ ├── IObjectSource.cs
│ │ │ │ ├── ITupleSink.cs
│ │ │ │ ├── ITupleSource.cs
│ │ │ │ ├── JoinNode.cs
│ │ │ │ ├── LhsExpression.cs
│ │ │ │ ├── Network.cs
│ │ │ │ ├── NotNode.cs
│ │ │ │ ├── ObjectInputAdapter.cs
│ │ │ │ ├── Quantifier.cs
│ │ │ │ ├── ReteBuilderContext.cs
│ │ │ │ ├── ReteBuilder.cs
│ │ │ │ ├── ReteNodeVisitor.cs
│ │ │ │ ├── RootNode.cs
│ │ │ │ ├── RuleNode.cs
│ │ │ │ ├── SelectionNode.cs
│ │ │ │ ├── Terminal.cs
│ │ │ │ ├── Tuple.cs
│ │ │ │ ├── TupleExtensions.cs
│ │ │ │ ├── TupleFactList.cs
│ │ │ │ ├── TupleFactSet.cs
│ │ │ │ └── TypeNode.cs
│ │ │ ├── RuleAction.cs
│ │ │ ├── RuleCompilationException.cs
│ │ │ ├── RuleCompiler.cs
│ │ │ ├── RuleCompilerOptions.cs
│ │ │ ├── RuleExecutionException.cs
│ │ │ ├── RuleExpressionEvaluationException.cs
│ │ │ ├── RuleFilter.cs
│ │ │ ├── RuleLhsExpressionEvaluationException.cs
│ │ │ ├── RuleNormalization.cs
│ │ │ ├── RuleRepositoryExtensions.cs
│ │ │ ├── RuleRhsExpressionEvaluationException.cs
│ │ │ ├── Session.cs
│ │ │ ├── SessionFactory.cs
│ │ │ ├── Utilities
│ │ │ │ ├── ArgumentMap.cs
│ │ │ │ ├── Arguments.cs
│ │ │ │ ├── ExpressionComparer.cs
│ │ │ │ ├── ExpressionElementComparer.cs
│ │ │ │ ├── ExpressionOptimizer.cs
│ │ │ │ ├── IndexMapExtensions.cs
│ │ │ │ ├── ReverseComparer.cs
│ │ │ │ ├── RuleExpressionCompiler.cs
│ │ │ │ └── TriggerExtensions.cs
│ │ │ └── WorkingMemory.cs
│ │ ├── NRules.Fluent
│ │ │ ├── Dsl
│ │ │ │ ├── ContextExtensions.cs
│ │ │ │ ├── DescriptionAttribute.cs
│ │ │ │ ├── IDependencyExpression.cs
│ │ │ │ ├── IFilterExpression.cs
│ │ │ │ ├── ILeftHandSideExpression.cs
│ │ │ │ ├── IQueryBuilder.cs
│ │ │ │ ├── IQuery.cs
│ │ │ │ ├── IRightHandSideExpression.cs
│ │ │ │ ├── NameAttribute.cs
│ │ │ │ ├── PriorityAttribute.cs
│ │ │ │ ├── QueryExpression.cs
│ │ │ │ ├── QueryExtensions.cs
│ │ │ │ ├── RepeatabilityAttribute.cs
│ │ │ │ ├── Rule.cs
│ │ │ │ └── TagAttribute.cs
│ │ │ ├── EnumerableExtensions.cs
│ │ │ ├── Expressions
│ │ │ │ ├── BuilderExtensions.cs
│ │ │ │ ├── DependencyExpression.cs
│ │ │ │ ├── ExpressionExtensions.cs
│ │ │ │ ├── ExpressionRewriter.cs
│ │ │ │ ├── FilterExpression.cs
│ │ │ │ ├── LeftHandSideExpression.cs
│ │ │ │ ├── PatternExpressionRewriter.cs
│ │ │ │ ├── QueryExpression.cs
│ │ │ │ ├── RightHandSideExpression.cs
│ │ │ │ ├── SymbolStack.cs
│ │ │ │ └── SymbolTable.cs
│ │ │ ├── NRules.Fluent.csproj
│ │ │ ├── RuleActivationException.cs
│ │ │ ├── RuleActivator.cs
│ │ │ ├── RuleDefinitionException.cs
│ │ │ ├── RuleDefinitionFactory.cs
│ │ │ ├── RuleLoadSpec.cs
│ │ │ ├── RuleMetadata.cs
│ │ │ ├── RuleMetadataExtensions.cs
│ │ │ ├── RuleProperties.cs
│ │ │ ├── RuleRepository.cs
│ │ │ └── RuleTypeScanner.cs
│ │ ├── NRules.Json
│ │ │ ├── Converters
│ │ │ │ ├── ExpressionConverter.cs
│ │ │ │ ├── ExpressionElementConverter.cs
│ │ │ │ ├── MemberBindingExtensions.cs
│ │ │ │ ├── MemberExtensions.cs
│ │ │ │ ├── RuleDefinitionConverter.cs
│ │ │ │ ├── RuleElementConverter.cs
│ │ │ │ ├── RulePropertyConverter.cs
│ │ │ │ └── TypeConverter.cs
│ │ │ ├── NRules.Json.csproj
│ │ │ ├── RuleSerializer.cs
│ │ │ ├── TypeAliasResolver.cs
│ │ │ ├── TypeCache.cs
│ │ │ ├── TypeResolver.cs
│ │ │ └── Utilities
│ │ │ ├── ExpressionExtensions.cs
│ │ │ ├── ExpressionParameterCompactor.cs
│ │ │ ├── JsonExtensions.cs
│ │ │ ├── TypeName.cs
│ │ │ └── TypeNameFormatter.cs
│ │ ├── NRules.Meta
│ │ │ └── NRules.Meta.csproj
│ │ ├── NRules.RuleModel
│ │ │ ├── ActionElement.cs
│ │ │ ├── ActionGroupElement.cs
│ │ │ ├── AggregateElement.cs
│ │ │ ├── AndElement.cs
│ │ │ ├── BindingElement.cs
│ │ │ ├── Builders
│ │ │ │ ├── ActionGroupBuilder.cs
│ │ │ │ ├── AggregateBuilder.cs
│ │ │ │ ├── BindingBuilder.cs
│ │ │ │ ├── BuilderAdapter.cs
│ │ │ │ ├── DependencyGroupBuilder.cs
│ │ │ │ ├── Element.cs
│ │ │ │ ├── ElementValidator.cs
│ │ │ │ ├── ExistsBuilder.cs
│ │ │ │ ├── FilterGroupBuilder.cs
│ │ │ │ ├── ForAllBuilder.cs
│ │ │ │ ├── GroupBuilder.cs
│ │ │ │ ├── IBuilder.cs
│ │ │ │ ├── NotBuilder.cs
│ │ │ │ ├── PatternBuilder.cs
│ │ │ │ ├── RuleBuilder.cs
│ │ │ │ └── RuleElementBuilder.cs
│ │ │ ├── Declaration.cs
│ │ │ ├── DeclarationExtensions.cs
│ │ │ ├── DependencyElement.cs
│ │ │ ├── DependencyGroupElement.cs
│ │ │ ├── ElementType.cs
│ │ │ ├── EnumerableExtensions.cs
│ │ │ ├── ExistsElement.cs
│ │ │ ├── ExpressionCollection.cs
│ │ │ ├── ExpressionElement.cs
│ │ │ ├── FilterElement.cs
│ │ │ ├── FilterGroupElement.cs
│ │ │ ├── ForAllElement.cs
│ │ │ ├── GroupElement.cs
│ │ │ ├── IContext.cs
│ │ │ ├── IFact.cs
│ │ │ ├── IFactMatch.cs
│ │ │ ├── IFactSource.cs
│ │ │ ├── IKeyedLookup.cs
│ │ │ ├── IMatch.cs
│ │ │ ├── IRuleRepository.cs
│ │ │ ├── ITuple.cs
│ │ │ ├── NamedExpressionElement.cs
│ │ │ ├── NotElement.cs
│ │ │ ├── NRules.RuleModel.csproj
│ │ │ ├── OrElement.cs
│ │ │ ├── PatternElement.cs
│ │ │ ├── PropertyMap.cs
│ │ │ ├── RuleDefinition.cs
│ │ │ ├── RuleElement.cs
│ │ │ ├── RuleElementExtensions.cs
│ │ │ ├── RuleElementVisitor.cs
│ │ │ ├── RuleProperty.cs
│ │ │ ├── RuleSet.cs
│ │ │ ├── RuleSetExtensions.cs
│ │ │ └── SortDirection.cs
│ │ ├── NRules.sln
│ │ ├── NRules.Testing
│ │ │ ├── DefaultRuleAsserter.cs
│ │ │ ├── FactConstraint.cs
│ │ │ ├── IRuleAsserter.cs
│ │ │ ├── Matched.cs
│ │ │ ├── NRules.Testing.csproj
│ │ │ ├── ReadOnlyListSlice.cs
│ │ │ ├── RuleAssertResult.cs
│ │ │ ├── RuleAssertStatus.cs
│ │ │ ├── RuleExpectation.cs
│ │ │ ├── RuleFiringVerification.cs
│ │ │ ├── RuleInfo.cs
│ │ │ ├── RuleInvocationRecorder.cs
│ │ │ ├── RulesFiringVerification.cs
│ │ │ ├── RulesTestFixture.cs
│ │ │ ├── RulesTestHarness.cs
│ │ │ ├── RulesTestSetup.cs
│ │ │ ├── RulesUnderTest.cs
│ │ │ ├── RulesVerification.cs
│ │ │ └── Times.cs
│ │ └── Tests
│ │ ├── NRules.IntegrationTests
│ │ │ ├── ActionInterceptorTest.cs
│ │ │ ├── ActionTriggerTest.cs
│ │ │ ├── AggregateEvaluationExceptionTest.cs
│ │ │ ├── AggregateSubnetTest.cs
│ │ │ ├── BatchedForwardChainingTest.cs
│ │ │ ├── BindingEvaluationExceptionTest.cs
│ │ │ ├── CoJoinedBindingAndQueryRuleTest.cs
│ │ │ ├── CoJoinedCollectAndExistsRulesTest.cs
│ │ │ ├── CollectionWithConditionsRuleTest.cs
│ │ │ ├── CustomFirstAggregatorTest.cs
│ │ │ ├── CustomSelectAggregatorTest.cs
│ │ │ ├── EvaluationEventTest.cs
│ │ │ ├── EvaluationExceptionTest.cs
│ │ │ ├── ExpressionParameterOrderTest.cs
│ │ │ ├── ForwardChainingLinkedTest.cs
│ │ │ ├── ForwardChainingLinkedToSelfTest.cs
│ │ │ ├── ForwardChainingTest.cs
│ │ │ ├── ForwardChainingTransitiveTest.cs
│ │ │ ├── FromQueryComplexReferenceTest.cs
│ │ │ ├── FromQueryDoubleReferenceTest.cs
│ │ │ ├── FromQuerySingleReferenceTest.cs
│ │ │ ├── GroupJoinSeveralQueriesTest.cs
│ │ │ ├── GroupWithGroupFilterRuleTest.cs
│ │ │ ├── HaltRuleTest.cs
│ │ │ ├── HavingClauseSingleArgumentConditionTest.cs
│ │ │ ├── IdentityMatchRuleTest.cs
│ │ │ ├── JoinFollowedByGroupByOnDifferentKeyTest.cs
│ │ │ ├── LifecycleEventTest.cs
│ │ │ ├── LinkedFactsErrorTest.cs
│ │ │ ├── MultipleQueriesSingleJoinRuleTest.cs
│ │ │ ├── NestedPatternsNoAliasTest.cs
│ │ │ ├── NodeSharingNonEquivalentExpressionsTest.cs
│ │ │ ├── NodeSharingTest.cs
│ │ │ ├── NRules.IntegrationTests.csproj
│ │ │ ├── OneEquatableFactOneCollectionRuleTest.cs
│ │ │ ├── OneEquatableFactRuleTest.cs
│ │ │ ├── OneFactAggregateJoinRuleTest.cs
│ │ │ ├── OneFactFirstFactRuleTest.cs
│ │ │ ├── OneFactNoBindingRuleTest.cs
│ │ │ ├── OneFactNonRepeatableRuleTest.cs
│ │ │ ├── OneFactOneCollectionRuleTest.cs
│ │ │ ├── OneFactOneCollectToLookupRuleTest.cs
│ │ │ ├── OneFactOneGroupByFlattenRuleTest.cs
│ │ │ ├── OneFactOneGroupByFlattenWithIdentityRuleTest.cs
│ │ │ ├── OneFactOneGroupByRuleTest.cs
│ │ │ ├── OneFactOneMultiKeySortedCollectionAscendingThenDescendingRuleTest.cs
│ │ │ ├── OneFactOneMultiKeySortedCollectionDescendingThenAscendingRuleTest.cs
│ │ │ ├── OneFactOneMultiKeySortedCollectionManyChainedThenByRuleTest.cs
│ │ │ ├── OneFactOneNotRuleTest.cs
│ │ │ ├── OneFactOneSelectRuleTest.cs
│ │ │ ├── OneFactOneSortedCollectionRuleTest.cs
│ │ │ ├── OneFactOneSortedDescendingCollectionRuleTest.cs
│ │ │ ├── OneFactRepeatableRuleTest.cs
│ │ │ ├── OneFactRetractingRuleTest.cs
│ │ │ ├── OneFactRuleTest.cs
│ │ │ ├── OneFactRuleWithDependencyTest.cs
│ │ │ ├── OneFactSimpleGroupByRuleTest.cs
│ │ │ ├── PriorityTest.cs
│ │ │ ├── RuleMetadataTest.cs
│ │ │ ├── RuleNormalizationTest.cs
│ │ │ ├── RulesLoadTest.cs
│ │ │ ├── SelfRetractRuleTest.cs
│ │ │ ├── SessionQueryTest.cs
│ │ │ ├── SingleOrDefaultEquatableFactRuleTest.cs
│ │ │ ├── SubnetUpdateTest.cs
│ │ │ ├── TestAssets
│ │ │ │ ├── BaseRulesTestFixture.cs
│ │ │ │ ├── ContextExtensions.cs
│ │ │ │ ├── RuleFiredAssertionException.cs
│ │ │ │ └── XUnitRuleAsserter.cs
│ │ │ ├── TestingFixtureTest.cs
│ │ │ ├── ThreeFactGroupByCollectMatchRuleTest.cs
│ │ │ ├── ThreeFactNestedOrGroupRuleTest.cs
│ │ │ ├── ThreeFactOrGroupRuleTest.cs
│ │ │ ├── ThreeFactTwoExistsRuleTest.cs
│ │ │ ├── ThreeFactTwoNotRuleTest.cs
│ │ │ ├── TwoFactCalculateRuleTest.cs
│ │ │ ├── TwoFactFilterRuleTest.cs
│ │ │ ├── TwoFactOneCollectionRuleTest.cs
│ │ │ ├── TwoFactOneExistsCheckRuleTest.cs
│ │ │ ├── TwoFactOneForAllCheckRuleTest.cs
│ │ │ ├── TwoFactOneGroupByRuleTest.cs
│ │ │ ├── TwoFactOneJoinedGroupByRuleTest.cs
│ │ │ ├── TwoFactOneNotRuleTest.cs
│ │ │ ├── TwoFactOneSelectRuleTest.cs
│ │ │ ├── TwoFactOrGroupBindingRuleTest.cs
│ │ │ ├── TwoFactOrGroupRuleTest.cs
│ │ │ ├── TwoFactRuleTest.cs
│ │ │ └── TwoFactSameTypeRuleTest.cs
│ │ ├── NRules.Json.Tests
│ │ │ ├── ExpressionSerializerTest.cs
│ │ │ ├── NRules.Json.Tests.csproj
│ │ │ ├── RuleSerializerTest.cs
│ │ │ ├── TestAssets
│ │ │ │ ├── Calculations.cs
│ │ │ │ ├── Facts.cs
│ │ │ │ └── ITestService.cs
│ │ │ ├── TypeResolverTest.cs
│ │ │ └── Utilities
│ │ │ ├── ExpressionComparer.cs
│ │ │ └── RuleDefinitionComparer.cs
│ │ └── NRules.Tests
│ │ ├── AgendaTest.cs
│ │ ├── Aggregators
│ │ │ ├── AggregatorTest.cs
│ │ │ ├── CollectionAggregatorTest.cs
│ │ │ ├── FlatteningAggregatorTest.cs
│ │ │ ├── GroupByAggregatorTest.cs
│ │ │ ├── LookupAggregatorTest.cs
│ │ │ ├── MultiKeySortedAggregatorTest.cs
│ │ │ ├── ProjectionAggregatorTest.cs
│ │ │ └── SortedAggregatorTest.cs
│ │ ├── Collections
│ │ │ └── OrderedPriorityQueueTest.cs
│ │ ├── NRules.Tests.csproj
│ │ ├── Rete
│ │ │ ├── FactTest.cs
│ │ │ ├── TupleTest.cs
│ │ │ └── TypeNodeTest.cs
│ │ ├── RuleCompilerTest.cs
│ │ ├── RuleModel
│ │ │ └── RuleBuilderTest.cs
│ │ ├── SessionTest.cs
│ │ └── Utilities
│ │ ├── ExpressionComparerTest.cs
│ │ ├── ExpressionElementComparerTest.cs
│ │ └── ReverseComparerTest.cs
│ ├── NRules.Debugger.Visualizer
│ │ ├── NRules.Debugger.Visualizer
│ │ │ ├── NRules.Debugger.Visualizer.csproj
│ │ │ └── SessionVisualizer.cs
│ │ ├── NRules.Debugger.Visualizer.DebuggeeSide
│ │ │ ├── NRules.Debugger.Visualizer.DebuggeeSide.csproj
│ │ │ ├── SessionObjectSource.cs
│ │ │ └── SessionPerformanceObjectSource.cs
│ │ ├── NRules.Debugger.Visualizer.sln
│ │ ├── NRules.Debugger.Visualizer.Tests
│ │ │ ├── NRules.Debugger.Visualizer.Tests.csproj
│ │ │ ├── Program.cs
│ │ │ ├── TestAssets
│ │ │ │ └── TestRule.cs
│ │ │ └── VisualizerHost.cs
│ │ └── VisualStudio.props
│ ├── NRules.Integration
│ │ └── NRules.Integration.Autofac
│ │ ├── NRules.Integration.Autofac
│ │ │ ├── AutofacDependencyResolver.cs
│ │ │ ├── AutofacRuleActivator.cs
│ │ │ ├── NRules.Integration.Autofac.csproj
│ │ │ └── RegistrationExtensions.cs
│ │ ├── NRules.Integration.Autofac.sln
│ │ └── NRules.Integration.Autofac.Tests
│ │ ├── NRules.Integration.Autofac.Tests.csproj
│ │ ├── RuleDependencyInjectionTests.cs
│ │ └── TestAssets
│ │ ├── RuleWithActionDependency.cs
│ │ ├── RuleWithConstructorDependency.cs
│ │ ├── TestFact1.cs
│ │ └── TestService.cs
│ ├── Nullable.cs
│ └── Nullable.props
└── tools
└── build
├── buildutils.ps1
├── private
│ ├── CleanupEnvironment.ps1
│ ├── ConfigureBuildEnvironment.ps1
│ ├── CreateConfigurationForNewContext.ps1
│ ├── ExecuteInBuildFileScope.ps1
│ ├── FormatErrorMessage.ps1
│ ├── GetCurrentConfigurationOrDefault.ps1
│ ├── Get-DefaultBuildFile.ps1
│ ├── GetTasksFromContext.ps1
│ ├── LoadConfiguration.ps1
│ ├── LoadModules.ps1
│ ├── ResolveError.ps1
│ ├── SelectObjectWithDefault.ps1
│ ├── Test-ModuleVersion.ps1
│ ├── WriteColoredOutput.ps1
│ ├── WriteDocumentation.ps1
│ └── WriteTaskTimeSummary.ps1
├── psake-config.ps1
├── psakefile.ps1
├── psake.ps1
├── psake.psd1
├── psake.psm1
└── public
├── Assert.ps1
├── BuildSetup.ps1
├── BuildTearDown.ps1
├── Exec.ps1
├── FormatTaskName.ps1
├── Framework.ps1
├── Get-PSakeScriptTasks.ps1
├── Include.ps1
├── Invoke-psake.ps1
├── Invoke-Task.ps1
├── Properties.ps1
├── Task.ps1
├── TaskSetup.ps1
└── TaskTearDown.ps1
68 directories, 551 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论