postshap: OnMethodBoundaryAspect и WebMethod - PullRequest
2 голосов
/ 22 ноября 2010

Я использую 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: Невозможно сериализовать аспекты: Le type 'xxxx.MyAspect' dans l'assembly 'zzzzz, Версия = 1.0.0.0, Культура = нейтральный, PublicKeyToken = null' n'est pas marqué comme sérialisable .. unknown_location ххххх

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

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

1 Ответ

3 голосов
/ 22 ноября 2010

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

[Serializable]
public class MyAspect : OnMethodBoundaryAspect

Вместо наследования интерфейса ISerializable.О различиях см. в этом вопросе .

...