我使用Reflection.Emit
和TypeBuilder
創建一個新的類型在運行時。我的設置是這樣的:我可以現場的類中運行時的類型設置爲C#中的新創建的類型?
public class MyClass {
public object MyField = CreateInstanceOfNewType();
public MyClass() {}
}
問題是MyClass.MyField
聲明瞭object
型,所以當澆注料類型分配給MyClass.MyField
存在新類型的隱式轉換操作符不叫。有沒有辦法到現場的類型設置爲新創建的類型,以便使其表現得如何,將在典型案例?
該類型是否實現一個已知的接口?如果是這樣,只需將* object *分配給一個類型爲該接口的變量。 –
隱式轉換操作符不能在接口定義,雖然。這確實會改變賦值類型,但不允許使用隱式強制類型轉換。 –
請描述您的實際業務問題,然後,而不是這個未知問題的不可行解決方案。你是對的 - C#不允許這個解決方案工作。這並不意味着你的問題是無法解決的。 –