Не удалось загрузить класс ConfigurationSection - введите - PullRequest
1 голос
/ 18 марта 2010

на web.config

<section name="FlowWebDataProviders" type="FlowWebProvidersSection" requirePermission="false"/>


  <FlowWebDataProviders peopleProviderName="sqlProvider" IzmListProviderName="sqlProvider">
    <PeopleProviders>
      <add name="sqlProvider" type="SqlPeopleProvider" connectionStringName="FlowServerConnectionString"/>
      <add name="xmlProvider" type="XmlPeopleProvider" schemaFile="People.xsd" dataFile="People.xml"/>
    </PeopleProviders>
    <IzmListProviders>
      <add name="sqlProvider" type="SqlIzmListProvider" connectionStringName="FlowServerConnectionString"/>
    </IzmListProviders>
  </FlowWebDataProviders>

и

  public class FlowWebProvidersSection : ConfigurationSection
  {
    [ConfigurationProperty("peopleProviderName", IsRequired = true)]
    public PeopleProviderName : string
    {
        get { this["peopleProviderName"] :> string }
        set { this["peopleProviderName"] = value; }
    }
    [ConfigurationProperty("IzmListProviderName", IsRequired = true)]
    public IzmListProviderName : string
    {
        get { (this["IzmListProviderName"] :> string) }
        set { this["IzmListProviderName"] = value; }
    }
    [ConfigurationProperty("PeopleProviders")]
    [ConfigurationValidatorAttribute(typeof(ProviderSettingsValidation))]
    public PeopleProviders : ProviderSettingsCollection
    {
        get { this["PeopleProviders"] :> ProviderSettingsCollection }
    }
    [ConfigurationProperty("IzmListProviders")]
    [ConfigurationValidatorAttribute(typeof(ProviderSettingsValidation))]
    public IzmListProviders : ProviderSettingsCollection
    {
        get { this["IzmListProviders"] :> ProviderSettingsCollection }
    }
  }

и

public class ProviderSettingsValidation : ConfigurationValidatorBase
  {
    public override CanValidate(typex : Type) : bool
    {
         if(typex : object == typeof(ProviderSettingsCollection)) true else false
    }

    /// <summary>
    // validate the provider section    
    /// </summary>
    public override Validate(value : object) : void
    {
      mutable providerCollection : ProviderSettingsCollection = match(value) 
             {
                | x is ProviderSettingsCollection => x
                | _ => null
             }
      unless (providerCollection == null) 
      {
        foreach (_provider is ProviderSettings in providerCollection) 
        {
          when (String.IsNullOrEmpty(_provider.Type)) 
          {
            throw ConfigurationErrorsException("Type was not defined in the provider");
          }
          mutable dataAccessType : Type = Type.GetType(_provider.Type);
          when (dataAccessType == null) 
          {
              throw (InvalidOperationException("Provider's Type could not be found"));
          }
        }
      }
    }
  }

проект: веб-приложение ...

Сначала мне нужно найти ошибку. , .

почему:

Анализатор сообщений об ошибках: Ошибка при создании обработчика раздела конфигурации для FlowWebDataProviders: Не удалось загрузить тип FlowWebProvidersSection.

кстати: синтаксис nemerle (текущий язык) очень похож на C #, не бойтесь читать код ... спасибо

добавлено: вот как я хочу получить раздел

ConfigurationManager.GetSection("FlowWebDataProviders")

1 Ответ

1 голос
/ 18 марта 2010

Проверьте ваш тип И пространство имен. То есть

  <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
...