2016-11-23 1 views
2

J'ai un programme en fonctionnement dont j'ai hérité qui fonctionne en tant que service pour le moment. Tout ce que fait le service est d'appeler une méthode dans une autre classe, donc j'essaye d'écrire un projet Winform que je peux exécuter pour que je puisse travailler dessus. J'ai copié + collé le fichier app.config et changé le nom du projet en servicetester, en un nouveau projet non-service. J'ai également copié divers morceaux de code d'autres codes du service et tout se construit. Je reçois le message suivant lorsque je tente et exécuter le projet en utilisant la ligne"Impossible de charger le type" à partir de app.config

var connectionManagerDataSection = ConfigurationManager.GetSection("CustomConfigurationSection") as clsCustomConfigurationSection; 

un message

An error occurred creating the configuration section handler for CustomConfigurationSection: Could not load type 'servicetester.Configuration.CustomConfigurationSect 
ion' from assembly 'servicetester'. (D:\\thepath\\servicetester\\bin\\Debug\\servicetester.vshost.exe.Config line 4)" 

exception interne

"System.TypeLoadException: Could not load type 'servicetester.Configuration.CustomConfigurationSection' from assembly 'servicetester'. 
    at System.Configuration.TypeUtil.GetTypeWithReflectionPermission(IInternalConfigHost host, String typeString, Boolean throwOnError) 
    at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.Init(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord) 
    at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.InitWithRestrictedPermissions(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord) 
    at System.Configuration.RuntimeConfigurationRecord.CreateSectionFactory(FactoryRecord factoryRecord) 
    at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere) 

C'est le app.config qui, en dehors du projet le nom est le même que le projet de service d'origine

<?xml version="1.0" encoding="utf-8" ?> 
    <configuration> 
     <configSections> 
     <section name="CustomConfigurationSection" type="servicetester.Configuration.CustomConfigurationSection, servicetester" /> 
     <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
      <section name="Proj.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     </sectionGroup> 
    </configSections> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <CustomConfigurationSection> 
    <EwsConfiguration username="[email protected]" password="letmein" version="2" emailStoreLocation="\\serverpath\" url="https://emailplace" subscriptionConnectionLifetime="15" debug="true"/> 
    </CustomConfigurationSection> 
    <applicationSettings> 
    <Proj.Properties.Settings> 
     <setting name="Proj_Email_Log" serializeAs="String"> 
     <value>http://path</value> 
     </setting> 
    </Proj.Properties.Settings> 
    </applicationSettings> 
</configuration> 

Il n'y a pas un chemin à C: \ Users \ NomUtilisateur \ AppData \ Local \ MONENTREPRISE \ MYAPP.exe_Url_longnastyhash9982749827349879 \ 1.0.0.0 \ user.config ou tout autre endroit que le long des lignes que j'ai lu pour essayer de supprimer

J'ai nettoyé et tout reconstruit

l'application Winform est la même version que le service en termes de .NET Framework ce sont des choses les plus courantes que Google dit qu'il peut être. D'autres idées? THanks

+0

Où Configuration.CustomConfigurationSection est, il n'est pas accessible à le projet de servicetester. Il se peut que vous manquiez un include ou que vous deviez copier cette classe dans le projet Servicetester. – Kevin

+0

J'ai copié cela et (espérons-le) tous les nécessaires. – Glyn

+0

Avez-vous trouvé une solution? J'ai rencontré le même problème aussi. –

Répondre

0

Vous avez besoin du nom du groupe de sections et de la section personnalisée.

var confSection = (CustomSection)System.Configuration.ConfigurationManager.GetSection("MCustomConfigurationSection/applicationSettings"); 

Ici vous avez échantillon config avec l'échantillon customAppSetting et sectionGroup

App.Config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <sectionGroup name="CustomConfigurationSection"> 
     <section name="customAppSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </sectionGroup> 
    </configSections> 
    <customAppSettingsGroup> 
    <customAppSettings> 
     <add key="Key1" value="val1"/> 
     <add key="Key2" value="val2"/> 
    </customAppSettings> 
    </customAppSettingsGroup> 
</configuration> 

Utilisation:

var section = ConfigurationManager.GetSection("CustomConfigurationSection/customAppSettings") as NameValueCollection; 
var val1 = section["Key1"]; 
var val2 = section["Key2"]; 
+0

A donné un aller mais il ramène le même message d'erreur – Glyn

+0

Utilisez la section personnalisée que je montre et ce sera du travail. Essayez d'éditer aussi votre appconfig. –