2009-05-26 8 views
3

私はSystem.Web.Profile.ProfileBaseを継承するC#でカスタムプロファイルクラスを実装しようとしています。私はSystem.Collections.Generic.List型のいくつかのプロパティを持っていますが、それらはデフォルトのXMLの代わりにバイナリとしてシリアル化する必要があります。しかし、私はProfileクラスでその設定をマークする方法が不明です。ASP.NETカスタムプロファイルserializeAs属性

たとえば、List型の「SavedReports」という名前のプロパティがあります。私は、web.configファイルのアプローチを使用した場合、私は単純に記述します。

<code> 
<profile> 
<providers> 
    <add name="SavedReports" serializeAs="Binary" type="System.Collections.Generic.List`1[MyNamespace.SavedReports]"/> 
<code> 

はしかし、私はカスタム実装のためのC#でserializeAs =「バイナリ」属性を追加する方法がわからない午前:

[SettingsAllowAnonymous(false)]

public List<SavedReport> SavedReports 
    { 
     get { return base["SavedReports"] as List<SavedReport>; } 
     set { base["SavedReport"] = value; } 
    } 

助けがあれば助かります。

おかげで、 クリス

答えて

4

私が見つけたこの:

SettingsSerializeAsAttributeでSettingsSerializeAsAttribute

、あなたは メカニズムが与えられた アプリケーション設定の際に使用するシリアライズ指定することができます クラスまたは プロパティです。この属性は、 設定プロバイダへの要求と見なされます。 プロバイダまたは個々の プロパティタイプが 指定されたシリアライゼーションスキームをサポートしていない場合は、 が無視されるか、エラーが発生する可能性があります。 この属性が存在しない場合、 プロバイダは通常 のほとんどの既定のシリアル化メカニズムを提供します。ほとんどの場合 は一般的にプレーンテキストです。

+1

パーフェクト、ありがとうダニエル! System.Configuration参照を追加し、[SettingsSerializeAsAttribute(SettingsSerializeAs.Binary)]を宣言に追加しました。 ありがとうございました! – cmcginty

関連する問題