AriDEVParser.Loading.Reader.Read C# (CSharp) Method

Read() public static method

public static Read ( string loader, string file ) : IEnumerable
loader string
file string
return IEnumerable
        public static IEnumerable<Packet> Read(string loader, string file)
        {
            IEnumerable<Packet> packets = null;
            var res = false;

            var asm = Assembly.GetExecutingAssembly();
            var types = asm.GetTypes();
            foreach (var type in types)
            {
                if (!type.IsSealed)
                    continue;

                if (!type.IsPublic)
                    continue;

                if (type.BaseType != typeof(Loader))
                    continue;

                var attrs = (LoaderAttribute[])type.GetCustomAttributes(typeof(LoaderAttribute), false);

                if (attrs.Length <= 0)
                    continue;

                foreach (var attr in attrs)
                {
                    if (attr.Name != loader)
                        continue;

                    var ctors = type.GetConstructors(BindingFlags.Public | BindingFlags.Instance);

                    try
                    {
                        var obj = (Loader)ctors[0].Invoke(new[] { file });

                        packets = obj.ParseFile();
                    }
                    catch (Exception)
                    {
                    }

                    res = true;
                    break;
                }

                if (res)
                    break;
            }

            if (!res)
                Console.WriteLine("No such loader.");

            return packets;
        }
Reader