예제 #1
0
        /// <summary>
        /// メソッド実行前処理
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="id">The identifier.</param>
        /// <param name="targetMethod">The target method.</param>
        /// <param name="instance"></param>
        /// <param name="args">The arguments.</param>
        public void PreProcess <T>(Guid id, MethodInfo targetMethod, T instance, object[] args)
        {
            try
            {
                var data = new AkReproductionData();

                Type typ = instance.GetType();
                data.TypeName     = typ.FullName;
                data.AssemblyName = typ.Assembly.FullName;
                data.MethodName   = targetMethod.Name;
                data.Arguments    = args;

                string fileName = Path.Combine(Environment.CurrentDirectory,
                                               DateTime.Now.ToString("yyyyMMddHHmmss") + ".dat");
                Console.WriteLine("[出力ファイル名]" + fileName);

                //ファイル出力
                AkAspectUtility.SaveToBinaryFile(data, fileName);
            }
            catch (Exception ex)
            {
                Console.WriteLine("例外発生!!");
                Console.WriteLine(ex.ToString());
            }
        }
예제 #2
0
        public void TestMethod2()
        {
            //var cls = AkProxy<ILogicClass>.Create(new LogicClass());
            var cls = AkAspectUtility.Create <ILogicClass>(new LogicClass());

            Console.WriteLine(cls.Method2("ほげほげ"));

            List <string> logList = GetLogList();

            Assert.AreEqual(0, logList.Count);
            logList.Clear();
        }
예제 #3
0
        public void TestMethod3()
        {
            //var cls = AkProxy<ILogicClass>.Create(new LogicClass());
            var cls = AkAspectUtility.Create <ILogicClass>(new LogicClass());

            Console.WriteLine(cls.Method3("ほげほげ"));

            List <string> logList = GetLogList();

            Assert.AreEqual("Method3 を実行します。", logList[0]);
            Assert.AreEqual("Method3 の実行が終了しました。", logList[1]);
            logList.Clear();
        }
예제 #4
0
        public void TestMethod5()
        {
            //AkProxy.SetAspectPartsSettingHandler(new AspectPartsSettingHandler(""));
            //var cls = AkProxy<ILogicClass>.Create(new LogicClass());
            var cls = AkAspectUtility.Create <ILogicClass>(new LogicClass());

            Console.WriteLine(cls.Method("ほげほげ"));

            List <string> logList = GetLogList();

            Assert.AreEqual("Method を実行します。", logList[0]);
            Assert.AreEqual("Method の実行が終了しました。", logList[1]);
            logList.Clear();
        }
예제 #5
0
        public void TestMethod4()
        {
            try
            {
                //var cls = AkProxy<ILogicClass>.Create(new LogicClass());
                var cls = AkAspectUtility.Create <ILogicClass>(new LogicClass());
                Console.WriteLine(cls.Method4("ほげほげ"));
                Assert.Fail();
            }
            catch (ApplicationException e)
            {
                Assert.AreEqual("TEST04", e.Message);
            }

            List <string> logList = GetLogList();

            logList.Clear();
        }