/// <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); }
/// <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; }