2016-01-12 4 views
-1

Когда я пытаюсь назначить _val, я получаю «Объект не соответствует типу цели».Получение значения из ошибки исключения пользовательского объекта

Я проверил оба объекта PropertyInfo - system.string. Я также нашел примеры этого синтаксиса. Спасибо за любую помощь.

Private Function SetAttributesForSplitFiles(ByVal _file As String, ByVal _depHeader As HeaderParse) 
    Dim _fileMask As New FileMaskExtension() 
    Dim _type As Type = GetType(HeaderParse.depBackupFileProperties) 
    For Each _prop As Reflection.PropertyInfo In GetType(OutputMgr.Interface.FileMaskExtension).GetProperties() 
     Dim _headerProperty As PropertyInfo = _type.GetProperty(_prop.Name) 
     Dim _val = _headerProperty.GetValue(_depHeader) 
     _prop.SetValue(_fileMask, _val, Nothing) 
    Next 
    SendFileTODepcon(_fileMask, _file) 
End Function 
+0

Для начала вы не указали тип ** _ val **, например. ** Dim _val как целое **. Установите точку останова на этой строке и наведите указатель мыши на ** _ val **, чтобы узнать, какой тип IDE считает, а затем наведите курсор на ** GetValue **, чтобы узнать, какой тип он должен быть. Затем определите ** _ val ** как соответствующий тип и при необходимости преобразуйте ** _ headerProperty.GetValue (_depHeader) ** в соответствующий тип –

+0

О, и в настройках Visual Studio ** ВСЕГДА ** установите ** Параметр Строгий ** to ** On **. Он подберет такие ошибки. Есть всего лишь несколько причин отключить его. –

+0

Я добавил Option Stict ON, но до сих пор получаю ошибку. – jwhitf4770

ответ

0

Это было потому, что пользовательский класс, который я использовал, был двухслойным.

Это сработало.

Dim _val As Object = _headerProperty.GetValue(_depHeader.FileProperties)