Язык Visual Basic на платформе .NET.
Модераторы: Ramzes, Sebas
-
Fedorfx
-
- Постоялец

-
-
- Сообщения: 371
- Зарегистрирован: 10.10.2002 (Чт) 0:14
Fedorfx » 20.10.2005 (Чт) 17:26
В шарпе есть така фича
[c#]
[field:NonSerialized]
public event MyDelegate Ev;
[/c#]
Но что то я никак не могу пометить свой эвент таким атрибутом.
Подскажите - как мне запретить серилизатору серилизовать евент.
А то если на евент подписался класс без атрибута - то выскакивает ошибка серилизации.
-
Sebas
-
- Неуловимый Джо

-

-
- Сообщения: 3626
- Зарегистрирован: 12.02.2002 (Вт) 17:25
- Откуда: столько наглости такие вопросы задавать
-
Sebas » 20.10.2005 (Чт) 22:19
<NonSerializedAttribute>
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?
sebas<-@->mail.ru
-
Fedorfx
-
- Постоялец

-
-
- Сообщения: 371
- Зарегистрирован: 10.10.2002 (Чт) 0:14
Fedorfx » 20.10.2005 (Чт) 22:24
хех
еслиб так было просто.
- Код: Выделить всё
<NonSerializedAttribute()> Public Event F1Changed As EventHandler
Error 21 Attribute 'NonSerializedAttribute' cannot be applied to 'F1Changed' because the attribute is not valid on this declaration type. C:\SATI\Code\Net\SYS\SYS\SYS\CLS\cls_Sys_Param.vb 23 6 SYS
-
GSerg
-
- Шаман

-
-
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 20.10.2005 (Чт) 22:59
Так, что ли...
- Код: Выделить всё
Imports System.Runtime.Serialization.Formatters.Soap
Module Module1
Sub Main()
Dim s As New SoapFormatter, st As New IO.MemoryStream
Dim c As New test
s.Serialize(st, c)
st.Seek(0, IO.SeekOrigin.Begin)
Dim tr As New IO.StreamReader(st)
Console.WriteLine(tr.ReadToEnd())
st.Close()
Console.ReadLine()
End Sub
End Module
<Serializable()> Public Class test
Implements Runtime.Serialization.ISerializable
Public Delegate Sub sdf(ByVal t As Integer)
Public Event asdf As sdf
Public i, j, k As Integer
Public Sub GetObjectData(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) Implements System.Runtime.Serialization.ISerializable.GetObjectData
info.AddValue("i", i)
info.AddValue("j", j)
info.AddValue("k", k)
End Sub
End Class
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
-
Fedorfx
-
- Постоялец

-
-
- Сообщения: 371
- Зарегистрирован: 10.10.2002 (Чт) 0:14
Fedorfx » 20.10.2005 (Чт) 23:33
GSerg респект. Я и не сомневался.
Правда я сделал еще проще.
Заюзал XML серилизатор.
Он по умолчанию эвенты не пишет.
Вернуться в Visual Basic .NET
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 9