示例#1
0
        public static object GetProperty(IProxy proxy, string propertyName, Type propertyType, object refValue)
        {
#if NPDEBUG
            Console.Write(propertyType.ToString());
#endif
            bool         cancel      = false;
            IInterceptor interceptor = proxy.GetInterceptor();
            if (interceptor.Notification != Notification.Disabled)
            {
                if (interceptor != null)
                {
                    interceptor.NotifyPropertyGet(proxy, propertyName, ref refValue, ref cancel);
                }
                if (cancel)
                {
                    return(GetDefaultValue(propertyType));
                }
                if (interceptor != null)
                {
                    interceptor.NotifyReadProperty(proxy, propertyName, refValue);
                }
            }
            return(refValue);
        }