[英]creating anymous type. type mytpe = typeof(nothing);?
我在這里閱讀了如何在運行時在 c# 中創建匿名類型
AssemblyBuilder dynamicAssembly =
AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("MyDynamicAssembly"),
AssemblyBuilderAccess.Run);
string propertyName = "prp_1";
//Type propertyType = new Type();
ModuleBuilder dynamicModule = dynamicAssembly.DefineDynamicModule("MyDynamicAssemblyModule");
TypeBuilder dynamicType = dynamicModule.DefineType("MyDynamicType", TypeAttributes.Public);
PropertyBuilder property =
dynamicType.DefineProperty(
propertyName,
System.Reflection.PropertyAttributes.None,
propertyType, // idk what to put here?
new[] { propertyType } // and here ?
);
//call this first
AddProperty(dynamicType, propertyName, propertyType );
//then we ' ll dynamic type
Type myType = dynamicType.CreateType();
被調用的函數
public static void AddProperty(TypeBuilder typeBuilder, string propertyName, Type propertyType)
代碼中有 propertyType,我不知道該放什么。 我可以做嗎
type mytype = \\typefree?
謝謝你。
編輯:此答案對於問題是正確的,但此后問題已更改。
我認為您正在尋找一種對象類型,因此如果該屬性是一個字符串,那么您將使用
typeof(string)
代替 propertyType。 啊抱歉錯過了匿名位。 您可以嘗試使用動態
typeof(dynamic)
這將具有相同的效果
typeof(object)
但是 dynamic 不是類型安全的,因此任何不存在的屬性在運行時之前都不會被拾取,兩者都有點像說“把任何東西放在這里”。 最安全和最好的做法是為匿名類型創建一個類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.