2010-11-03 47 views
0

问题:我正在抛出此异常,而我正尝试使用配置文件中的Sprint.NET验证验证名为StudyEnvironment的业务对象。在Spring.NET验证中加载正确的上下文

'StudyEnvironment' node cannot be resolved for the specified context [Validation.Models.StudyEnvironment]. 

下面是重现异常的步骤,它被引发到最后一行。

问题:我在这里错过了什么吗?我需要在配置文件中以某种xml格式声明我的业务对象吗?或者Spring.NET只是神奇地选择它,我是Spring.NET的新手。

第1步:定义在web.config中一类

namespace Validation.Models 
{ 
    public class StudyEnvironment 
    { 
     private Guid id; 
     public String Name { get; set; } 


     public StudyEnvironment() 
     { 
      this.id = Guid.NewGuid(); 
     } 
    } 
} 

新增确认部分

<configuration> 
    <configSections> 
    <sectionGroup name="spring">  
     <section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/> 
     <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" /> 
     <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" /> 
    </sectionGroup> 
    </configSections> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <spring> 
     <context> 
     <resource uri="config://spring/objects" /> 
     </context>    
     <objects xmlns="http://www.springframework.net" xmlns:v="http://www.springframework.net/validation">   
     <v:group id="envValidator"> 
      <v:required id="environmentValidator" test="StudyEnvironment.Name"> 
      <v:message id="error.environmentName.required" providers="errors"/> 
      </v:required> 
     </v:group> 
     </objects> 
     <parsers> 
     <parser type="Spring.Validation.Config.ValidationNamespaceParser, Spring.Core" /> 
     </parsers>  
    </spring> 
</configuration> 

第3步:验证呼叫

StudyEnvironment env = new StudyEnvironment(); 
env.Name = "test"; 

IValidator validator = ContextRegistry.GetContext().GetObject("envValidator") as IValidator; 
IValidationErrors validationErrors = new ValidationErrors(); 
bool isValid = validator.Validate(env, validationErrors); 

回答

1

试试这个:

<v:group id="envValidator"> 
    <v:required id="environmentValidator" test="Name"> 
     <v:message id="error.environmentName.required" providers="errors"/> 
    </v:required> 
</v:group> 
+0

这工作,谢谢,它比我想它会更容易:) – Usman 2010-11-04 11:35:22