public bool Check(GenerateScorpioClass generate, Type type, MethodInfo methodInfo)
 {
     if (methodInfo.IsDefined(typeof(ObsoleteAttribute), true))
     {
         return(false);
     }
     else if (type == typeof(Input) && methodInfo.Name == "IsJoystickPreconfigured")
     {
         return(false);
     }
     return(true);
 }
 public bool Check(GenerateScorpioClass generate, Type type, PropertyInfo propertyInfo)
 {
     if (propertyInfo.IsDefined(typeof(ObsoleteAttribute), true))
     {
         return(false);
     }
     else if (type == typeof(Texture2D) && propertyInfo.Name == "alphaIsTransparency")
     {
         return(false);
     }
     return(true);
 }
예제 #3
0
        static void Fast(CommandLine command, string[] args)
        {
            var output   = Launch.GetPath("-output", "-o");
            var dll      = command.GetValue("-dll");
            var assembly = dll.isNullOrWhiteSpace() ? null : Assembly.LoadFile(Path.Combine(CurrentDirectory, dll));
            var strClass = command.GetValue("-class");

            if (strClass.isNullOrWhiteSpace())
            {
                throw new Exception("找不到 -class 参数");
            }
            var strExtension = command.GetValue("-extension");

            ClassFilter filter    = null;
            var         strFilter = command.GetValue("-filter");

            if (!strFilter.isNullOrWhiteSpace())
            {
                var filterType = GetType(assembly, strFilter, typeof(ClassFilter));
                if (filterType != null)
                {
                    filter = (ClassFilter)Activator.CreateInstance(filterType);
                }
            }
            var extensions = new List <Type>();

            if (!strExtension.isNullOrWhiteSpace())
            {
                foreach (var cl in strExtension.Split(';'))
                {
                    extensions.Add(GetType(assembly, cl, null));
                }
            }
            var classNames = strClass.Split(";");

            foreach (var className in classNames)
            {
                var clazz = GetType(assembly, className, null);
                if (clazz == null)
                {
                    throw new Exception($"找不到 class, 请输入完整类型或检查类名是否正确 : {className}");
                }
                var generate = new GenerateScorpioClass(clazz);
                generate.SetClassFilter(filter);
                foreach (var ex in extensions)
                {
                    generate.AddExtensionType(ex);
                }
                var outputFile = Path.Combine(output, generate.ScorpioClassName + ".cs");
                FileUtil.CreateFile(outputFile, generate.Generate());
                Logger.info($"生成快速反射类 {className} -> {outputFile}");
            }
        }
 public bool Check(GenerateScorpioClass generate, Type type, EventInfo eventInfo)
 {
     return(true);
 }
 public bool Check(GenerateScorpioClass generate, Type type, FieldInfo fieldInfo)
 {
     return(true);
 }