Я попытался использовать копирование-вставку объекта между двумя приложениями и получил ошибку "System.InvalidCastException: 'Невозможно привести объект типа' System.IO.MemoryStream 'к типу' howto_net_clipboard_object.Employee '.'", поэтому я взял образец из http://www.vb-helper.com/howto_net_clipboard_object.html и начал экспериментировать. Объект для копирования:
<Serializable()>
Public Class Employee
Public FirstName As String
Public LastName As String
Public Sub New()
End Sub
Public Sub New(ByVal first_name As String, ByVal last_name As String)
FirstName = first_name
LastName = last_name
End Sub
End Class
Копировать в буфер обмена:
Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
Dim emp As New Employee(txtFirstName.Text, txtLastName.Text)
Clipboard.SetDataObject(emp)
End Sub
и вставить
Private Sub btnPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPaste.Click
Dim data_object As IDataObject = Clipboard.GetDataObject
If data_object.GetDataPresent("howto_net_clipboard_object.Employee") Then
Dim emp As Employee = DirectCast(data_object.GetData("howto_net_clipboard_object.Employee"), Employee)
txtDropFirstName.Text = emp.FirstName
txtDropLastName.Text = emp.LastName
Else
txtDropFirstName.Text = ""
txtDropLastName.Text = ""
End If
End Sub
Тест 1 - после того, как VS Community 2019 преобразовал источник - выполнить программа - работает.
Тест 2 - скопировал преобразованный источник - скопируйте в одну прогу и вставьте в другой - работает.
Тест 3 - Открыл VS с новым проектом, собрал тот же сформировал макет и скопировал код и запустил мою новую версию и оригинал. На этот раз я получил ту же ошибку, что и в моем приложении.
Что мне не хватает?