예제 #1
0
 public override Type GetDbObjectHandler(Type sourceType, ObjectInfo oi)
 {
     foreach (var type in _staticAssembly.GetTypes())
     {
         var attr = ClassHelper.GetAttribute <InstanceHandlerAttribute>(type, false);
         if (attr != null)
         {
             if (attr.Type == sourceType)
             {
                 return(type);
             }
         }
     }
     throw new DataException("Can not find ObjectHandler for: {0}", sourceType.FullName);
 }
예제 #2
0
        protected override void OnLoad(EventArgs e)
        {
            var t = GetType();
            const BindingFlags flag = BindingFlags.DeclaredOnly
                                      | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;

            foreach (var fieldInfo in t.GetFields(flag))
            {
                var attr = ClassHelper.GetAttribute <HttpParameterAttribute>(fieldInfo, false);
                if (attr != null)
                {
                    ProcessParameterInit(fieldInfo, attr.AllowEmpty);
                }
                var inMaster = ClassHelper.GetAttribute <InMasterAttribute>(fieldInfo, false);
                if (inMaster != null)
                {
                    ProcessInMasterInit(fieldInfo);
                }
            }
            base.OnLoad(e);
        }