public void CycleTest()
        {
            MethodFilterProxyTypeFactory proxyFactory = new MethodFilterProxyTypeFactory("Xphter.Framework.Reflection.Tests.Proxies");

            IObjectFactory objectFactory = new XmlConfigurationObjectFactory(CONFIG_FILE_NAME, new Assembly[] {
                Assembly.GetExecutingAssembly(),
            }, proxyFactory);

            objectFactory.CreateInstance <ClassD5>();
        }
        public void DistributedFileLogStorageFactoryTest_WithSource()
        {
            File.WriteAllText(CONFIG_FILE_NAME, Xphter.Framework.Test.Properties.Resources.LogConfig.Replace("ref=\"\"", "ref=\"distributed\""), Encoding.UTF8);

            IObjectFactory objectFactory = new XmlConfigurationObjectFactory(CONFIG_FILE_NAME, new Assembly[] {
                Assembly.GetExecutingAssembly(),
            }, null);

            using (ILogger logger = objectFactory.CreateInstance <ILogger>()) {
                logger.Record(new LogInfo {
                    OperationSource = "来源0",
                    LogType         = LogInfoType.Info,
                    StateObject     = "信息",
                });
                logger.RecordAsync(new LogInfo {
                    OperationSource = "来源1",
                    LogType         = LogInfoType.Warning,
                    StateObject     = "警告0",
                });
                logger.RecordAsync(new LogInfo {
                    OperationSource = "来源2",
                    LogType         = LogInfoType.Error,
                    StateObject     = "错误0",
                });

                int count = 1000000;

                Task t1 = Task.Factory.StartNew(() => {
                    for (int i = 0; i < count; i++)
                    {
                        logger.RecordAsync(new LogInfo {
                            OperationSource = "来源1",
                            LogType         = LogInfoType.Warning,
                            StateObject     = "警告" + (i + 1),
                        });
                    }
                });

                Task t2 = Task.Factory.StartNew(() => {
                    for (int i = 0; i < count; i++)
                    {
                        logger.RecordAsync(new LogInfo {
                            OperationSource = "来源2",
                            LogType         = LogInfoType.Error,
                            StateObject     = "错误" + (i + 1),
                        });
                    }
                });

                Task.WaitAll(t1, t2);

                Thread.Sleep(20000);
            }
        }
        public void SuccessTest_NoProxyFactory()
        {
            IObjectFactory objectFactory = new XmlConfigurationObjectFactory(CONFIG_FILE_NAME, new Assembly[] {
                Assembly.GetExecutingAssembly(),
            }, null);

            IClassA obj1  = objectFactory.CreateInstance <IClassA>();
            string  name1 = obj1.Test(13);

            IClassA obj2  = objectFactory.CreateInstance <IClassA>();
            string  name2 = obj1.Test(18);
        }
        public void AllTest()
        {
            IObjectFactory objectFactory = new XmlConfigurationObjectFactory(CONFIG_FILE_NAME, new Assembly[] {
                Assembly.GetExecutingAssembly(),
            }, null);

            using (TextWriter writer = new StreamWriter("error.txt", false, Encoding.UTF8)) {
                using (ILogger logger = objectFactory.CreateInstance <ILogger>()) {
                    logger.Error += (ex) => writer.WriteLine(ex.Message);

                    logger.Record(new LogInfo {
                        LogType     = LogInfoType.Info,
                        StateObject = "信息",
                    });

                    logger.Record(new LogInfo {
                        LogType     = LogInfoType.Warning,
                        StateObject = "警告",
                    });

                    logger.Record(new LogInfo {
                        LogType         = LogInfoType.Error,
                        StateObject     = "错误",
                        ExceptionObject = new NotImplementedException("未实现"),
                    });

                    logger.Record(new LogInfo {
                        LogType         = LogInfoType.Error,
                        LogLevel        = 2,
                        StateObject     = "错误",
                        ExceptionObject = new NotImplementedException("未实现"),
                    });

                    int count = 10000;

                    for (int i = 0; i < count; i++)
                    {
                        logger.RecordAsync(new LogInfo {
                            LogType     = LogInfoType.Warning,
                            StateObject = "警告" + (i + 1),
                        });
                    }

                    Thread.Sleep(70000);
                }
            }
        }
        public void CentralizedFileLogStorageFactoryTest()
        {
            File.WriteAllText(CONFIG_FILE_NAME, Xphter.Framework.Test.Properties.Resources.LogConfig.Replace("ref=\"\"", "ref=\"centralized\""), Encoding.UTF8);

            IObjectFactory objectFactory = new XmlConfigurationObjectFactory(CONFIG_FILE_NAME, new Assembly[] {
                Assembly.GetExecutingAssembly(),
            }, null);

            using (ILogger logger = objectFactory.CreateInstance <ILogger>()) {
                logger.Record(new LogInfo {
                    LogType     = LogInfoType.Info,
                    StateObject = "信息",
                });

                logger.Record(new LogInfo {
                    LogType     = LogInfoType.Warning,
                    StateObject = "警告",
                });

                logger.Record(new LogInfo {
                    LogType         = LogInfoType.Error,
                    StateObject     = "错误",
                    ExceptionObject = new NotImplementedException("未实现"),
                });

                logger.Record(new LogInfo {
                    LogType         = LogInfoType.Error,
                    LogLevel        = 2,
                    StateObject     = "错误",
                    ExceptionObject = new NotImplementedException("未实现"),
                });

                int count = 1000000;

                for (int i = 0; i < count; i++)
                {
                    logger.RecordAsync(new LogInfo {
                        LogType     = LogInfoType.Error,
                        StateObject = "错误" + (i + 1),
                    });
                }

                Thread.Sleep(20000);
            }
        }
示例#6
0
        public void AllTest()
        {
            IObjectFactory objectFactory = new XmlConfigurationObjectFactory(CONFIG_FILE_NAME, new Assembly[] {
                Assembly.GetExecutingAssembly(),
            }, null);

            using (ILogger logger = objectFactory.CreateInstance <ILogger>()) {
                logger.Record(new LogInfo {
                    LogType     = LogInfoType.Info,
                    StateObject = "信息",
                });

                logger.Record(new LogInfo {
                    LogType     = LogInfoType.Warning,
                    StateObject = "警告",
                });

                logger.Record(new LogInfo {
                    LogType         = LogInfoType.Error,
                    StateObject     = "错误",
                    ExceptionObject = new NotImplementedException("未实现"),
                });

                logger.Record(new LogInfo {
                    LogType         = LogInfoType.Error,
                    LogLevel        = 2,
                    StateObject     = "错误",
                    ExceptionObject = new NotImplementedException("未实现"),
                });

                int count = 1000000;

                for (int i = 0; i < count; i++)
                {
                    logger.RecordAsync(new LogInfo {
                        LogType     = LogInfoType.Warning,
                        StateObject = "警告" + (i + 1),
                    });
                }

                Thread.Sleep(20000);
            }
        }
        public void SuccessTest_WithProxyFactory()
        {
            MethodFilterProxyTypeFactory proxyFactory = new MethodFilterProxyTypeFactory("Xphter.Framework.Reflection.Tests.Proxies");

            IObjectFactory objectFactory = new XmlConfigurationObjectFactory(CONFIG_FILE_NAME, new Assembly[] {
                Assembly.GetExecutingAssembly(),
            }, proxyFactory);

            try {
                IClassA obj1  = objectFactory.CreateInstance <IClassA>();
                string  name1 = obj1.Test(13);

                IClassA obj2  = objectFactory.CreateInstance <IClassA>();
                string  name2 = obj1.Test(18);
            } finally {
#if DEBUG
                proxyFactory.SaveAssembly(null);
#endif
            }
        }
        public void DistributedFileLogStorageFactoryTest_NoSource()
        {
            File.WriteAllText(CONFIG_FILE_NAME, Xphter.Framework.Test.Properties.Resources.LogConfig.Replace("ref=\"\"", "ref=\"distributed\""), Encoding.UTF8);

            IObjectFactory objectFactory = new XmlConfigurationObjectFactory(CONFIG_FILE_NAME, new Assembly[] {
                Assembly.GetExecutingAssembly(),
            }, null);

            using (ILogger logger = objectFactory.CreateInstance <ILogger>()) {
                logger.Record(new LogInfo {
                    LogType     = LogInfoType.Info,
                    StateObject = "信息",
                });

                logger.Record(new LogInfo {
                    LogType     = LogInfoType.Warning,
                    StateObject = "警告",
                });

                logger.Record(new LogInfo {
                    LogType     = LogInfoType.Warning,
                    StateObject = "警告",
                });

                logger.Record(new LogInfo {
                    LogType         = LogInfoType.Error,
                    StateObject     = "错误",
                    ExceptionObject = new NotImplementedException("未实现"),
                });

                logger.Record(new LogInfo {
                    LogType         = LogInfoType.Error,
                    StateObject     = "错误",
                    ExceptionObject = new NotImplementedException("未实现"),
                });
            }
        }