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())));
        }
Пример #3
0
        public MDynamicSupport Create(Object instance)
        {
            ManagementInfo info = MInspector.BuildInfoFromStandardComponent(instance);

            CodeGenerationDynamicSupport codeGen = new CodeGenerationDynamicSupport(
                instance, info,
                new MemberResolver(info, instance.GetType()));

            return(codeGen.GetImplementation());
        }
Пример #4
0
        /// <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);
            }
        }
Пример #7
0
		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 );
			}
		}
Пример #8
0
		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);
            }
        }
Пример #10
0
        /// <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);
            }
        }
Пример #11
0
        //删除
        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());
            }
        }
Пример #12
0
		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;
        }
Пример #14
0
        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);
                }
            }
        }
Пример #16
0
        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);
            }
        }
Пример #17
0
        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();
        }
Пример #18
0
        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);
            }
        }
Пример #19
0
        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;
		}
Пример #21
0
		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;
 }
 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;
 }
Пример #25
0
 public CodeGenerationDynamicSupport(Object instance, ManagementInfo info, MemberResolver resolver)
 {
     this.info     = info;
     this.instance = instance;
     this.resolver = resolver;
 }