Pergunta

Estou usando o PostSharp para adicionar um aspecto a um webMethod.

Abaixo está o meu aspecto (não faz nada ... não quer compilar):

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

    }

    public override void OnEntry(MethodExecutionEventArgs eventArgs)
    {

    }

    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {

    }
}

E meu webMethod parece:

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

Quando eu construo o projeto, há um erro:

ERREUR 346 PostSharp: Não é possível serializar os aspectos: le tipo 'xxxx.myaspect' Dans l'usply 'zzzzz, versão = 1.0.0.0, cultura = neutro, publicKeyToken = null' n'est pas marqué commialisable .. Unknown_location xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX

Diz -me que meu aspecto não é marcado como serializável ...

O que posso fazer? Para sua informação, não tenho nenhum problema com esses aspectos no restante do projeto.

Foi útil?

Solução

Você deve adicionar o Serializable atribuir ao seu MyAspect. Então:

[Serializable]
public class MyAspect : OnMethodBoundaryAspect

Em vez de herdar o ISerializable interface. Para as diferenças, veja essa questão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top