18

.NET のカスタム例外を設計する場合、MSDN は次のガイドラインを提供します。特に、ガイドラインでは、カスタム例外について次のように述べています。

  • シリアライズ可能である必要があります。つまり、属性を実装ISerializableして装飾する必要があります。[Serializable]
  • (逆) シリアライゼーション コンストラクターを実装する必要がありprotected CustomException(SerializationInfo info, StreamingContext context)ます。

ただし、ポータブル クラス ライブラリSerializableAttributeでは、ISerializableとのどちらもSerializationInfoサポートされていません。

.NET Framework と 1 つ以上のプラットフォームを同時に対象とするポータブル クラス ライブラリでカスタム例外を十分に設計するにはどうすればよいですか?

4

1 に答える 1

18

基本的に、そのガイダンスは無視してください。これは完全な .NET 用であり、ポータブル クラス ライブラリ プロジェクトには適用されません。実際、(たとえば)Silverlight(WP7を含む)を見ると、次のことがわかります。

[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
public class Exception

率直に言って、その要件の主な消費者はリモーティングでした...そして、それは現在大きな需要はありません.

于 2012-11-28T12:36:32.473 に答える