2016-11-23 27 views
2

私はサービスとして機能するプログラムを継承しています。そのサービスは、別のクラスのメソッドを呼び出すので、実行できるwinformプロジェクトを作成しようとしていますので、私はititで作業することができます。 app.configファイルをコピーして貼り付けて、プロジェクトの名前をservicetesterに、新しい非サービスプロジェクトに変更しました。私はまた、サービスからのコードの様々なビットをコピーし、それはすべてビルドします。私は、これは別にプロジェクトからapp.configをで試してみて、ラインにapp.configから「タイプをロードできませんでした」

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

メッセージ

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)" 

内部例外

"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) 

を使用してプロジェクトを実行したとき、私は、次のメッセージが表示されます名前は元のサービスプロジェクトと同じです

<?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> 

は Cへのパスがありません:\ Users \ユーザーMYUSERNAME \のAppData \ローカル\ MyCompanyの\ MYAPP.exe_Url_longnastyhash9982749827349879 \ 1.0.0.0 \ user.config か私が読んだその線に沿って、他の場所は

を削除しようとします私は、.NETフレームワークの面でWinフォームアプリケーションは、サービスと同じバージョンである それらをすべて

を清掃し、再構築してきました

は、Googleはそれができると言うことを最も一般的なものです。他のアイデア? THanks

+0

Configuration.CustomConfigurationSectionは、それがにアクセス可能ではない、あるどこservicetesterプロジェクト。インクルードがないか、そのクラスを介してservicetesterプロジェクトにコピーする必要があります。 – Kevin

+0

私はそれを必要以上にコピーしました。 – Glyn

+0

解決策を見つけましたか?私も同じ問題に遭遇しました。 –

答えて

0

セクショングループとカスタムセクションの名前が必要です。

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

ここでは、サンプルcustomAppSettingとサンプルの設定を持っていると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> 

使用法:

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

これを行っても、同じエラーメッセージが返されます – Glyn

+0

私が示すようにカスタムセクションを使用すれば、それは動作します。あなたのappconfigも編集してみてください。 –