예제 #1
0
 protected virtual void ValidatePropertyModel(CompositeValidationResult result, CompositeModel model, PropertyModel property)
 {
     if (property.IsPartOfCompositeState())
     {
         UseDefaultsAttribute udAttr;
         if (property.IsUseDefaults(out udAttr))
         {
             if (udAttr.ActualType != null && !property.NativeInfo.PropertyType.IsAssignableFrom(udAttr.ActualType))
             {
                 result.StructureValidationErrors.Add(ValidationErrorFactory.NewStructureError("The type " + property.NativeInfo.PropertyType + " of " + property.NativeInfo + " is not assignable from type given to " + typeof(UseDefaultsAttribute) + " constructor ( " + udAttr.ActualType + ").", model, property));
             }
             else if (property.NativeInfo.PropertyType.IsGenericParameter)
             {
                 result.StructureValidationErrors.Add(ValidationErrorFactory.NewStructureError("The type " + property.NativeInfo.PropertyType + " of " + property.NativeInfo + " is marked with " + typeof(UseDefaultsAttribute) + " but it is generic type parameter.", model, property));
             }
         }
     }
 }
 protected virtual Boolean CanEmitDefaultValueForPropertyModel(PropertyModel propModel)
 {
     return(propModel.IsPartOfCompositeState() && (propModel.DefaultValueCreator != null || propModel.IsUseDefaults()));
 }