protected ReflectedPropertyTreeFactoryDefinition(AddAttribute attr, MethodBase method, Type outputType)
        {
            this.info = new CommonReflectionInfo(this, attr ?? AddAttribute.Default, method);
            this.outputType = outputType;

            Type returnType;
            ConstructorInfo ctor = method as ConstructorInfo;
            if (ctor == null)
                returnType = ((MethodInfo) method).ReturnType;
            else
                returnType = ctor.DeclaringType;
        }
        protected ReflectedPropertyTreeFactoryDefinition(AddAttribute attr, MethodBase method, Type outputType)
        {
            this.info       = new CommonReflectionInfo(this, attr ?? AddAttribute.Default, method);
            this.outputType = outputType;

            Type            returnType;
            ConstructorInfo ctor = method as ConstructorInfo;

            if (ctor == null)
            {
                returnType = ((MethodInfo)method).ReturnType;
            }
            else
            {
                returnType = ctor.DeclaringType;
            }
        }
 public ReflectedRemoveDefinition(RemoveAttribute attr, MethodBase method)
 {
     this.info = new CommonReflectionInfo(this, attr ?? RemoveAttribute.Default, method);
 }
 public ReflectedClearDefinition(ClearAttribute attr, MethodBase method)
 {
     this.info = new CommonReflectionInfo(this, attr ?? ClearAttribute.Default, method);
 }
 public ReflectedRemoveDefinition(RemoveAttribute attr, MethodBase method)
 {
     this.info = new CommonReflectionInfo(this, attr ?? RemoveAttribute.Default, method);
 }
 public ReflectedClearDefinition(ClearAttribute attr, MethodBase method)
 {
     this.info = new CommonReflectionInfo(this, attr ?? ClearAttribute.Default, method);
 }