示例#1
0
    public static void Main()
    {
        var t2 = Task.Run(async() =>
        {
            using (var scw = new StreamClassWriter())
            {
                for (int i = 0; i < 10; i++)
                {
                    await scw.Write($"Message {i}");
                    await Task.Delay(1000);
                }
            }
        });

        Thread.Sleep(100);
        var t1 = Task.Run(() =>
        {
            var v = new StreamClassReader();
            using (var scr = v)
            {
                String res = "";
                while (res is not null)
                {
                    res = scr.Read();
                    Console.Out.WriteLine(res);
                }
            }
        });

        using (var m = new MemoryStream())
        {
        }

        Task.WaitAll(t2, t1);
    }
        public Type GetByName(string name)
        {
            name = string.Concat(_name, ".", name);

            if (!_typeCache.TryGet(name, out Type value))
            {
                string           path            = Assembly.GetEntryAssembly().Location;
                Stream           stream          = File.OpenRead(path);
                IClassReader     classReader     = new StreamClassReader(stream);
                IAssemblyBuilder assemblyBuilder = new ClassReaderAssemblyStringBuilder(_name, classReader);
                assemblyBuilder.Build();
                _typeCache.TryGet(name, out value);
            }

            return(value);
        }