2009-06-04 7 views
3

C#アプリケーションで任意の(ただしサポートされている)エンコーディングのDecoderFallbackプロパティを設定しようとしています。基本的に私は何をしようとしていることはこれです:私は例外を取得していますエンコーディングタイプのDecoderFallbackプロパティを設定できません

ASCIIEncoding ascii = new ASCIIEncoding(); 
ascii.DecoderFallback = new DecoderExceptionFallback(); 

私は見たことがない前:

のSystem.InvalidOperationExceptionた 未処理メッセージ= "インスタンスがある 読みます-のみ。"私のアプリ...> のInnerExceptionに<でSystem.Text.Encoding.set_DecoderFallbackで (DecoderFallback 値) ...:ソース= "mscorlib"
のStackTrace

私は見つけることができませんでした任意のMSDNドキュメントとそのプロパティの使用方法の例もし誰かが私に何かを指摘できたら、私の使い方が間違っていると示唆しているかもしれません。私は、バイトまたはバイトのデコードに失敗したときに例外を投げる必要があり、それが気付かれないようにする余裕がない。

おかげで、 ブライアン

答えて

0

http://www.google.com/codesearch?q=DecoderFallback

ASCIIEncoding ascii = (ASCIIEncoding)new ASCIIEncoding().Clone(); 
ascii.DecoderFallback = new DecoderExceptionFallback(); 
+0

私はこれを試みたが、例外がまだ発生します。代わりに@palharesの提案を使用してください。 –

3

に基づいて、このプロパティは読み取り専用です。 Encoding.GetEncoding()を使用して、コンフィグで独自のエンコードを作成する必要があります。このメソッドは、エンコード、EncoderFallbackおよびDecoderFallbackを受け取ります。

var enc = System.Text.Encoding.GetEncoding("ASCII", EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback); 

http://msdn.microsoft.com/pt-br/library/89856k4b.aspx

+1

あなたの答えを言葉で説明してください。コードだけではなく、その方法から学ぶ方が簡単です。 –

+0

@OlleSjögren編集済み、thx ... – palhares

関連する問題