2
我有一個C#DLL中的類下面的類Activator.CreateInstance MissingMethodException
public class RequiredTask : Base.BaseObject
{
public string Name { get; set; }
public string Description { get; set; }
public RequiredTask()
: base()
{ }
}
從這個類
public class BaseObject : IBaseObject, INotifyPropertyChanged
{
public DateTime? UpdatedOn { get; set; }
public string UpdatedBy
public DateTime? CreatedOn
public string CreatedBy
public BaseObject() { }
}
那麼UI繼承,是VB.Net WinForm的,這形式將是一個基本形式,是通用的,因此它可與所有從C#庫的工作類型,它有一個新的按鈕,需要實例化新類型的任何T是並將它傳遞給,這將是一種形式用於編輯T.
這是形式的代碼
Public Class Search(Of T As Library.Base.BaseObject)
Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click
If MyBase.OpenFormName <> "" Then App.mfrmMDI.OpenForm(MyBase.OpenFormName, DirectCast(Activator.CreateInstance(GetType(T), New Object()), T))
End Sub
End Class
但我得到這個錯誤構造函數型「Library.Production.RequiredTask找不到。當它達到
DirectCast(Activator.CreateInstance(GetType(T), New Object()), T)
改變新的對象()爲Nothing犯規實際編譯,與重載解析錯誤 –
@ user1584413 - 更新了答案,使用適當的過載調用默認的構造函數。 –
工作perferctly,謝謝 –