постшап: OnMethodBoundaryAspect и WebMethod

Я использую 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)
    {

    }
}

И мой веб-метод выглядит так:

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

Когда я создаю проект, возникает ошибка:

Ошибка 346 PostSharp: Не удается сериализовать аспекты: Тип «xxxx.MyAspect» в сборке «zzzzz», версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null 'n'est pas marqué comme serialisable.. unknown_location xxxxx

Он говорит мне, что мой аспект не помечен как сериализуемый...

Что я могу сделать? К вашему сведению, у меня нет проблем с такими аспектами в остальной части проекта.


person Francois    schedule 22.11.2010    source источник


Ответы (1)


Вы должны добавить атрибут Serializable к вашему MyAspect. Так:

[Serializable]
public class MyAspect : OnMethodBoundaryAspect

Вместо того, чтобы наследовать интерфейс ISerializable. Различия см. в этом вопросе.

person Jan Jongboom    schedule 22.11.2010