Printing handlers
Handlers can be printed as tree with HandlerSource.PrintTree(object).
// Create print handlers
Console.WriteLine(HandlerInfoPrintTreeExtensions.PrintTree((ServiceHandlers.Instance, EmitHandlers.Instance)));
ValueTuple<ServiceHandlers,EmitHandlers> ├── ServiceHandlers │ ├── RequestResolver │ ├── ContextParameterResolver │ ├── BatchRequestHandler │ ├── ContextRequestHandler │ ├── TypeResolver │ ├── NewRequestHandler │ ├── AssemblyBuilderFactory │ ├── SingletonHandler<AssemblyBuilderRequest,AssemblyBuilderRequest> │ ├── SingletonHandler<AssemblyBuilderRequest,AssemblyBuilder> │ ├── ModuleBuilderFactory │ ├── SingletonHandler<ModuleBuilderRequest,ModuleBuilderRequest> │ └── SingletonHandler<ModuleBuilderRequest,ModuleBuilder> └── EmitHandlers ├── TypeBuilderFactory ├── TypeFactory ├── TypeBuiltHandler ├── ConstructorBuilderFactory ├── MethodBuilderFactory ├── FieldBuilderFactory ├── PropertyBuilderFactory ├── DefineMethodOverrideHandler ├── ILGeneratorFactory ├── EmitHandler ├── EmitLdind ├── EmitStind ├── EmitCastHandler ├── LocalBuilderFactory ├── LabelFactory └── MarkLabelRequestHandler
ServiceHandlers
ServiceHandlers contains basic query supporting handlers. There is a singleton instance ServiceHandlers.Instance.
// Create service
IService service = Services.Create(ServiceHandlers.Instance);
// Print handlers
Console.WriteLine(HandlerInfoPrintTreeExtensions.PrintTree(ServiceHandlers.Instance));
ServiceHandlers ├── RequestResolver ├── ContextParameterResolver ├── BatchRequestHandler ├── ContextRequestHandler ├── TypeResolver ├── NewRequestHandler ├── AssemblyBuilderFactory ├── SingletonHandler<AssemblyBuilderRequest,AssemblyBuilderRequest> ├── SingletonHandler<AssemblyBuilderRequest,AssemblyBuilder> ├── ModuleBuilderFactory ├── SingletonHandler<ModuleBuilderRequest,ModuleBuilderRequest> └── SingletonHandler<ModuleBuilderRequest,ModuleBuilder>
Handler table
A table of handlers can be created by inheriting RecordPropertiesOf<IHandlerBase>, RecordFieldsOf<IHandlerBase>, ClassPropertiesOf<IHandlerBase> or ClassFieldsOf<IHandlerBase>.