Postshap: onmethodboundaryaspect e webMethod
-
27-09-2019 - |
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.
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.