7

私は、認証だけでなく、ロールとプロファイル管理を提供する必要がある C# Web サービスに取り組んでいます。各プロファイルに List 型のプロパティが必要です。web.config のプロファイル セクションは次のようになります。

<profile defaultProvider="MyProfileProvider" enabled="true">
  <providers>
    <remove name="MyProfileProvider"/>
    <add connectionStringName="MySqlServer"
      applicationName="MyApp"
      name="MyProfileProvider"
      type="System.Web.Profile.SqlProfileProvider" />
  </providers>
  <properties>
    <add name="Websites" type="System.Collections.Generic.List&lt;String&gt;" serializeAs="Binary"/>
  </properties>
</profile> 

ただし、Web サービスを開始してそのプロパティにアクセスしようとすると、次のエラーが返されます。

System.Configuration.ConfigurationErrorsException: このプロパティの型を読み込もうとすると、次のエラーが発生しました: 型 'System.Collections.Generic.List<String>' を読み込めませんでした。(C:\Projects\MyProject\web.config 行 58) ---> System.Web.HttpException: タイプ 'System.Collections.Generic.List<String>' を読み込めませんでした。

この目的でジェネリック コレクションを使用する方法はありますか?

4

1 に答える 1

11

さらに検索した後、ようやく答えを見つけることができました。解決策は、名前空間によって修飾された型名を使用することです。これは、私の問題で使用したことを意味します。

<add name="Websites" type="System.Collections.Generic.List`1[System.String]" serializeAs="Binary"/>

また、他のアセンブリで定義されたクラスを指定できることもわかりました。それらを使用するには、アセンブリ修飾名が必要です。たとえば、"System.Collections.Generic.HashSet`1[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], System.Core, Version=3.5.0.0, のようになります。 Culture=neutral, PublicKeyToken=b77a5c561934e089" 文字列のハッシュセットの場合。

于 2010-02-04T14:42:25.247 に答える