コード例 #1
0
        /// <summary>
        /// Builds the descriptor for given type.
        /// </summary>
        /// <param name="type">The type.</param>
        /// <param name="resolver">The generic parameter resolver.</param>
        /// <param name="builder">The <see cref="TypeDescriptor"/> builder.</param>
        /// <returns>Built descriptor.</returns>
        public static TypeDescriptor BuildDescriptor(TypeAdapterBase type, ParameterResolver resolver, TypeDescriptorBuilder builder = null)
        {
            if (builder == null)
            {
                builder = new TypeDescriptorBuilder();
            }

            var director = new TypeHierarchyDirector(builder, resolver);

            director.buildType(type);

            var result = builder.BuildDescriptor();

            return(result);
        }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TypeHierarchyDirector" /> class.
 /// </summary>
 /// <param name="builder">The builder.</param>
 /// <param name="resolver">The resolver.</param>
 private TypeHierarchyDirector(TypeDescriptorBuilder builder, ParameterResolver resolver)
 {
     _resolver = resolver;
     _builder  = builder;
 }