2

PostSharpを使用してWebMethodにアスペクトを追加しています。

以下は私の側面です(それは何もしません...コンパイルしたくないです):

public class MyAspect : OnMethodBoundaryAspect, ISerializable
{
    public override void OnException(MethodExecutionEventArgs eventArgs)
    {

    }

    public override void OnEntry(MethodExecutionEventArgs eventArgs)
    {

    }

    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {

    }
}

そして私のwebmethodは次のようになります:

    [MyAspect]
    [WebMethod]
    public void MyWebMethod()
    {
        //...
    }

プロジェクトをビルドすると、エラーが発生します。

Erreur 346 PostSharp:アスペクトをシリアル化できません:Le type'xxxx.MyAspect' dans l'assembly' zzzzz、Version = 1.0.0.0、Culture = neutral、PublicKeyToken =null'n'estpasmarquécommesérialisable..unknown_locationxxxxx

私のアスペクトがシリアル化可能としてタグ付けされていないことを教えてくれます...

私に何ができる?参考までに、プロジェクトの残りの部分では、そのような側面に問題はありません。

4

1 に答える 1

3

Serializableに属性を追加する必要がありますMyAspect。それで:

[Serializable]
public class MyAspect : OnMethodBoundaryAspect

ISerializableインターフェイスを継承する代わりに。違いについては、この質問を参照してください。

于 2010-11-22T16:12:15.020 に答える