コード例 #1
0
ファイル: Program.cs プロジェクト: luizcarlosfaria/summer-net
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        public static void Main(string[] args)
        {
            try
            {
                Contact     contact             = GetProxy();
                IIsModified modificationWatcher = (IIsModified)contact;

                contact.FirstName = "Aleksandar";
                if (modificationWatcher.IsModified)
                {
                    Console.WriteLine("Should not flag as modification");
                }

                contact.FirstName = "Goran";

                if (modificationWatcher.IsModified)
                {
                    Console.WriteLine("Should flag as modification");
                }
            }
            catch (Exception ex)
            {
                Console.Out.WriteLine();
                Console.Out.WriteLine(ex);
            }
            finally
            {
                Console.Out.WriteLine();
                Console.Out.WriteLine("--- hit <return> to quit ---");
                Console.ReadLine();
            }
        }
コード例 #2
0
        public virtual Object Invoke(IMethodInvocation invocation)
        {
            MethodInfo method = invocation.Method;
            object     proxy  = invocation.Proxy;

            if (proxy is IIsModified)
            {
                IIsModified obj = (IIsModified)proxy;
                if (IsSetter(method))
                {
                    obj.IsModified = HasModificationOccured(method, invocation.This, invocation.Arguments);
                }
            }
            return(invocation.Proceed());
        }