public Specification ResolveSpecificationRefs(
            IReadOnlyDictionary <string, object> values,
            ReferenceResolutionSettings settings = null)
        {
            SpecificationReferenceVisitor visitor = new SpecificationReferenceVisitor(values, settings);

            return(visitor.Visit(this));
        }
Esempio n. 2
0
        public static T ResolveSpecificationRefs <T>(
            this T specification,
            IReadOnlyDictionary <string, object> values,
            ReferenceResolutionSettings settings = null)
            where T : Specification
        {
            if (typeof(T) == typeof(ReferenceSpecification))
            {
                throw new Exception(
                          $"This method should not be used with type {typeof(ReferenceSpecification)}. Use instance method {typeof(ReferenceSpecification).GetMethod(nameof(ReferenceSpecification.ResolveSpecificationRefs))} instead.");
            }

            SpecificationReferenceVisitor visitor = new SpecificationReferenceVisitor(values, settings);

            return((T)visitor.Visit(specification));
        }