StrictOn conversions from 'Object' to '1-dimensional array

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

StrictOn conversions from 'Object' to '1-dimensional array

Сообщение student-uni » 24.09.2006 (Вс) 22:07

Пишет

Strict On disallows implicit conversions from 'Object' to '1-dimensional array of Object

НА
Dim fileStream As FileStream = Nothing
If File.Exists(filePath) Then
fileStream = File.OpenRead(filePath)
Dim formatter As New BinaryFormatter
Dim settings() As Object = formatter.Deserialize(fileStream)

а именно на фрагмент : formatter.Deserialize(fileStream)

Изменил на

Dim settings As Object = formatter.Deserialize(fileStream)

/привёл к нужному типу/

Но пошли дальше ошибки StrictOn Disallows Late Binding

например на

settings.Length = 10
или на
settings(0)
settings(1) итд

Это что надо определить каков будет размер settings и переопределить Redim-OM ?

Спаибо

П.С.
Отключить СтриктОн просьба не предлагать :-)

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Сообщение student-uni » 24.09.2006 (Вс) 22:11

Да забыл
при сериализации

Dim settings() As Object = New Object() {strLog, strKen, intDBtyp, TextBox9.Text}

это такой массив.
Наверно надо при десериализации привести кэтому типу ?

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 25.09.2006 (Пн) 0:45

И в чем проблема? Приведи к этому типу.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 25.09.2006 (Пн) 7:30

Внимательное чтение MSDN по теме BinaryFormatter (с тщательным изучением примеров) весьма пользительно для автора, также пользительным будет являться чтение по привидению типов.
Весь мир матрица, а мы в нем потоки байтов!

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Сообщение student-uni » 25.09.2006 (Пн) 9:19

И в чем проблема? Приведи к этому типу.


Пытаюсь:

formatter.Serialize(fileStream, settings)

Должно быть
вместо
Код: Выделить всё
Dim settings() As Object = formatter.Deserialize(fileStream)

' вот это
Dim settings() As Object = formatter.Deserialize(fileStream, settings())


Но надо объявить перед этим
Dim settings() As Object = New Object() {strLog, strKen, intDBtyp, TextBox9.Text}

а параметров то {strLog, strKen, intDBtyp, TextBox9.Text} у меня нет ,
они при сериализации определялись.

Еслибы settings()) был не As Object а например Hashtable я бы сделал

Dim settings() As Object = formatter.Deserialize(fileStream, Hashtable )

Пробую
Код: Выделить всё

Dim settings() As Object
settings() = formatter.Deserialize(fileStream, settings())


Тоже не идёт - надо както проинициализировать типа
{strLog, strKen, intDBtyp, TextBox9.Text}
но как ?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 25.09.2006 (Пн) 9:38

Задачка типа "пойди туда не знаю куда..."

Вот тебе пример для размышлений

Код: Выделить всё
Dim arInt() As Integer = {1, 2, 3, 4, 5}
Dim obj As Object = arInt
Dim arInt2() As Integer = CType(obj, Integer())
Весь мир матрица, а мы в нем потоки байтов!

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Сообщение student-uni » 25.09.2006 (Пн) 16:53

Садисты :-)
Спасибо !



Код: Выделить всё

Dim settings() As Object ' = New Object() {"", "", 0, ""}
settings = CType(formatter.Deserialize(fileStream), Object())



Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

    TopList