private static void SetupManagedOperations(ManagementInfo info, Object instance) { MethodInfo[] methods = instance.GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance); foreach (MethodInfo minfo in methods) { if (minfo.IsDefined(typeof(ManagedOperationAttribute), true)) { object[] atts = minfo.GetCustomAttributes(typeof(ManagedOperationAttribute), true); ManagedOperationAttribute att = (ManagedOperationAttribute)atts[0]; ParameterInfo[] parameters = minfo.GetParameters(); Type[] arguments = new Type[parameters.Length]; for (int i = 0; i < parameters.Length; i++) { arguments[i] = parameters[i].ParameterType; } ManagementOperation operation = new ManagementOperation(minfo.Name, att.Description, arguments); info.Operations.Add(operation); } } }
public MDynamicSupport Create(Object instance) { ManagementInfo info = MInspector.BuildInfoFromStandardComponent(instance); return(new ReflectedDynamicSupport( instance, info, new MemberResolver(info, instance.GetType()))); }
public MDynamicSupport Create(Object instance) { ManagementInfo info = MInspector.BuildInfoFromStandardComponent(instance); CodeGenerationDynamicSupport codeGen = new CodeGenerationDynamicSupport( instance, info, new MemberResolver(info, instance.GetType())); return(codeGen.GetImplementation()); }
/// <summary> /// TODO: Summary /// </summary> /// <param name="instance"></param> /// <returns></returns> public static ManagementInfo BuildInfoFromStandardComponent(Object instance) { ManagementInfo info = new ManagementInfo(); SetupManagedComponent(info, instance); SetupManagedOperations(info, instance); SetupManagedAttributes(info, instance); return info; }
/// <summary> /// TODO: Summary /// </summary> /// <param name="instance"></param> /// <returns></returns> public static ManagementInfo BuildInfoFromStandardComponent(Object instance) { ManagementInfo info = new ManagementInfo(); SetupManagedComponent(info, instance); SetupManagedOperations(info, instance); SetupManagedAttributes(info, instance); return(info); }
private void ResolveAttributes(ManagementInfo info, Type target) { foreach (ManagementObject item in info.Attributes) { PropertyInfo property = target.GetProperty( item.Name, BindingFlags.Public | BindingFlags.Instance); attributes.Add(item.Name, property); } }
private void ResolveOperations(ManagementInfo info, Type target) { foreach(ManagementOperation item in info.Operations) { MethodInfo method = target.GetMethod( item.Name, BindingFlags.Public|BindingFlags.Instance, null, item.Arguments, null ); operations.Add( BuildOperationName(item.Name, method.GetParameters()), method ); } }
private void ResolveAttributes(ManagementInfo info, Type target) { foreach(ManagementObject item in info.Attributes) { PropertyInfo property = target.GetProperty( item.Name, BindingFlags.Public|BindingFlags.Instance ); attributes.Add( item.Name, property ); } }
private void ResolveOperations(ManagementInfo info, Type target) { foreach (ManagementOperation item in info.Operations) { MethodInfo method = target.GetMethod( item.Name, BindingFlags.Public | BindingFlags.Instance, null, item.Arguments, null); operations.Add(BuildOperationName(item.Name, method.GetParameters()), method); } }
/// <summary> /// default /// </summary> private void DoSelect() { string PId = RequestData.Get("PId") + ""; if (!string.IsNullOrEmpty(PId)) { //ManagementInfo.Prop_PId, PId); SearchCriterion.AddSearch("PId", PId); SearchCriterion.SetOrder(ManagementInfo.Prop_CreateTime, false); var Ents = ManagementInfo.FindAll(SearchCriterion); this.PageState.Add("DataList", Ents); } }
//删除 public void DoDelete() { IList <object> idList = RequestData.GetList <object>("IdList"); if (idList != null && idList.Count > 0) { foreach (var v in idList) { ManagementInfo.DeleteAll(" PId='" + v.ToString() + "' "); } ManagementGroup.DoBatchDelete(idList.ToArray()); } }
private static void SetupManagedComponent(ManagementInfo info, Object instance) { Object[] componentAtt = instance.GetType().GetCustomAttributes( typeof(ManagedComponentAttribute), true ); if (componentAtt == null || componentAtt.Length == 0) { throw new StandardComponentException("Standard component must use ManagedComponentAttribute attribute."); } ManagedComponentAttribute compAtt = componentAtt[0] as ManagedComponentAttribute; info.Description = compAtt.Description; }
private static void SetupManagedComponent(ManagementInfo info, Object instance) { Object[] componentAtt = instance.GetType().GetCustomAttributes( typeof(ManagedComponentAttribute), true); if (componentAtt == null || componentAtt.Length == 0) { throw new StandardComponentException("Standard component must use ManagedComponentAttribute attribute."); } ManagedComponentAttribute compAtt = componentAtt[0] as ManagedComponentAttribute; info.Description = compAtt.Description; }
private static void SetupManagedAttributes(ManagementInfo info, Object instance) { PropertyInfo[] properties = instance.GetType().GetProperties(BindingFlags.Public|BindingFlags.Instance); foreach(PropertyInfo minfo in properties) { if (minfo.IsDefined( typeof(ManagedAttributeAttribute), true )) { object[] atts = minfo.GetCustomAttributes( typeof(ManagedAttributeAttribute), true ); ManagedAttributeAttribute att = (ManagedAttributeAttribute) atts[0]; ManagementAttribute attribute = new ManagementAttribute(minfo.Name, att.Description, minfo.PropertyType); info.Attributes.Add(attribute); } } }
private static void SetupManagedAttributes(ManagementInfo info, Object instance) { PropertyInfo[] properties = instance.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo minfo in properties) { if (minfo.IsDefined(typeof(ManagedAttributeAttribute), true)) { object[] atts = minfo.GetCustomAttributes(typeof(ManagedAttributeAttribute), true); ManagedAttributeAttribute att = (ManagedAttributeAttribute)atts[0]; ManagementAttribute attribute = new ManagementAttribute(minfo.Name, att.Description, minfo.PropertyType); info.Attributes.Add(attribute); } } }
public void TestGetManagementInfo() { ManagedObjectName name1 = new ManagedObjectName("domain.org:type=httpServer"); ManagedObjectName name2 = new ManagedObjectName("domain.net:type=smtpServer"); try { Object httpServer = server.Instantiate(httpServerType.Assembly.FullName, httpServerType.FullName); server.RegisterManagedObject(httpServer, name1); ManagementInfo info = server.GetManagementInfo(name1); AssertNotNull(info); AssertEquals(3, info.Operations.Count); AssertEquals(1, info.Attributes.Count); Object smtpServer = server.Instantiate(smtpServerType.Assembly.FullName, smtpServerType.FullName); try { server.RegisterManagedObject(smtpServer, name1); Fail("Should not allow register with same name."); } catch (InstanceAlreadyRegistredException) { // OK } server.RegisterManagedObject(smtpServer, name2); info = server.GetManagementInfo(name2); AssertNotNull(info); AssertEquals(2, info.Operations.Count); AssertEquals(1, info.Attributes.Count); } finally { server.UnregisterManagedObject(name1); server.UnregisterManagedObject(name2); } }
static void Main(string[] args) { Console.WriteLine(); string ConfigFolder = Directory.GetCurrentDirectory().Substring(0, Directory.GetCurrentDirectory().Length - 23); ConfigFolder += @"\Configuration\appsettings.txt"; string configDeserialize = File.ReadAllText(ConfigFolder); JsonSerializerSettings setting = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; ConfigApp appSettings = JsonConvert.DeserializeObject <ConfigApp>(configDeserialize, setting); if (args.Length > 0) { foreach (ICommand command in appSettings.CommandList) { if (args.Length == 2 && command.Name != "-h") { command.Run(appSettings, args[1]); } else if (args.Length == 1) { command.Run(appSettings, args[0]); } } string json = JsonConvert.SerializeObject(appSettings, setting); File.WriteAllText(ConfigFolder, json); if (args.Length == 1) { return; } } ManagementInfo.Run(appSettings); Console.WriteLine(); //DrawImageConsole.Draw(); }
public void TestInfoObtation() { MDefaultServer server = new MDefaultServer(); ManagedObjectName name1 = new ManagedObjectName("domain.org:type=dummyService"); try { Type serviceType = typeof(DummyService); Object service = server.Instantiate(serviceType.Assembly.FullName, serviceType.FullName); server.RegisterManagedObject(service, name1); ManagementInfo info = server.GetManagementInfo(name1); AssertNotNull(info); AssertEquals(1, info.Operations.Count); AssertEquals(1, info.Attributes.Count); } finally { server.UnregisterManagedObject(name1); } }
private static void SetupManagedOperations(ManagementInfo info, Object instance) { MethodInfo[] methods = instance.GetType().GetMethods(BindingFlags.Public|BindingFlags.Instance); foreach(MethodInfo minfo in methods) { if (minfo.IsDefined( typeof(ManagedOperationAttribute), true )) { object[] atts = minfo.GetCustomAttributes( typeof(ManagedOperationAttribute), true ); ManagedOperationAttribute att = (ManagedOperationAttribute) atts[0]; ParameterInfo[] parameters = minfo.GetParameters(); Type[] arguments = new Type[ parameters.Length ]; for(int i=0 ; i < parameters.Length; i++ ) { arguments[i] = parameters[i].ParameterType; } ManagementOperation operation = new ManagementOperation(minfo.Name, att.Description, arguments); info.Operations.Add(operation); } } }
public CodeGenerationDynamicSupport(Object instance, ManagementInfo info, MemberResolver resolver) { this.info = info; this.instance = instance; this.resolver = resolver; }
public MemberResolver(ManagementInfo info, Type target) { ResolveAttributes(info, target); ResolveOperations(info, target); }
public ReflectedDynamicSupport(Object instance, ManagementInfo info, MemberResolver resolver) { this.info = info; this.instance = instance; this.resolver = resolver; }