import {ClassUtil} from '../../common/reflect/ClassUtil'; import {ServiceUtil} from '../ServiceUtil'; import {PluginAnnotation} from './PluginAnnotation'; import {PluginService} from './PluginService'; //========================================================== // 实例关联描述类。 // // @param clazz 类对象 // @author maocy // @version 160227 //========================================================== export function Plugin(name: string, ...dependencies: Array) { return function(clazzType): any { // 注册描述器 var annotation = new PluginAnnotation(name, dependencies); ClassUtil.registerAnnotation(clazzType, annotation); // 注册插件 var pluginService: PluginService = ServiceUtil.find(PluginService); pluginService.registerAnnotation(annotation); } }