Проблема: выдается это исключение, когда я пытаюсь проверить бизнес-объект с именем StudyEnvironment с помощью проверки Sprint.NET из файла конфигурации.
'StudyEnvironment' node cannot be resolved for the specified context [Validation.Models.StudyEnvironment].
Ниже приведены шаги для воспроизведения исключения, которое выдается в последней строке.
Вопрос: я что-то здесь упускаю? Нужно ли декларировать мой бизнес-объект в каком-то формате xml в файле конфигурации? Или Spring.NET просто выбирает это волшебным образом, я новичок в Spring.NET.
Шаг 1: Определен класс
namespace Validation.Models
{
public class StudyEnvironment
{
private Guid id;
public String Name { get; set; }
public StudyEnvironment()
{
this.id = Guid.NewGuid();
}
}
}
Добавлен раздел проверки в web.config
<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);