簡體   English   中英

創建任意類型。 type mytpe = typeof(nothing);?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM