Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中创建动态创建的类的列表#_C#_Wpf_List_Class_Dynamic - Fatal编程技术网

C# 在c中创建动态创建的类的列表#

C# 在c中创建动态创建的类的列表#,c#,wpf,list,class,dynamic,C#,Wpf,List,Class,Dynamic,我已经使用名为mMember的数据库创建了动态类,该数据库包含一些项目。我想使用此属性将数据分配给wpf中的datagrid private void Button_Click(object sender, RoutedEventArgs e) { ICodeCompiler loCompiler = new CSharpCodeProvider().CreateCompiler(); CompilerParameters loParamet

我已经使用名为mMember的数据库创建了动态类,该数据库包含一些项目。我想使用此属性将数据分配给wpf中的datagrid

      private void Button_Click(object sender, RoutedEventArgs e)
    {

        ICodeCompiler loCompiler = new CSharpCodeProvider().CreateCompiler();
        CompilerParameters loParameters = new CompilerParameters();
        // Start by adding any referenced assemblies
        loParameters.ReferencedAssemblies.Add("System.dll");
        // Must create a fully functional assembly as a string
        lcCode = @"public class mMember
        {
            public  static int cid { get; set; }

            public static  string cFname { get; set; }

            public  static string cLname { get; set; }

            public  static decimal? iAge { get; set; }

            public  static string dpDept_Id { get; set; }

            public static  bool? bEnabled { get; set; }
        }";

        // Load the resulting assembly into memory
        loParameters.GenerateInMemory = false;
        // Now compile the whole thing
        CompilerResults loCompiled =
          loCompiler.CompileAssemblyFromSource(loParameters, lcCode);
        if (loCompiled.Errors.HasErrors)
        {
            string lcErrorMsg = "";
            lcErrorMsg = loCompiled.Errors.Count.ToString() +
                         " Errors:";
            for (int x = 0; x < loCompiled.Errors.Count; x++)
                lcErrorMsg = lcErrorMsg + "\r\nLine: " +
                             loCompiled.Errors[x].Line.ToString() +
                              " - " + loCompiled.Errors[x].ErrorText;
            MessageBox.Show(lcErrorMsg + "\r\n\r\n" + lcCode,
                            "Compiler Demo");
            return;
        }
        Assembly loAssembly = loCompiled.CompiledAssembly;
        Type calcType = loAssembly.GetType("mMember");

        // Retrieve an obj ref - generic type only
        object loObject =
               loAssembly.CreateInstance("mMember");
        PropertyInfo numberPropertyInfo = calcType.GetProperty("cLname");

        numberPropertyInfo.SetValue(loObject, "Kadam", null);

        string value = (string)numberPropertyInfo.GetValue(loObject, null);

        var loResult1 = loObject.GetType().GetProperty("cLname").GetValue(this, null);
        MessageBox.Show(loResult1.ToString());

          if (loObject == null)
        {
            MessageBox.Show("Couldn't load class.");
            return;
        }
   }
private void按钮\u单击(对象发送者,路由目标)
{
ICodeCompiler loCompiler=new CSharpCodeProvider().CreateCompiler();
CompilerParameters loParameters=新的CompilerParameters();
//首先添加任何引用的程序集
loParameters.ReferencedAssemblys.Add(“System.dll”);
//必须以字符串形式创建功能齐全的程序集
lcCode=@“公共类成员
{
公共静态int-cid{get;set;}
公共静态字符串cFname{get;set;}
公共静态字符串cLname{get;set;}
公共静态十进制数?iAge{get;set;}
公共静态字符串dpDept_Id{get;set;}
公共静态bool?启用{get;set;}
}";
//将生成的程序集加载到内存中
loParameters.GenerateInMemory=false;
//现在把整件事都编出来
本地编译结果=
loCompiler.compileasemblyfromsource(loParameters,lcCode);
if(loCompiled.Errors.HasErrors)
{
字符串lcErrorMsg=“”;
lcErrorMsg=loCompiled.Errors.Count.ToString()+
“错误:”;
对于(int x=0;x
现在我想创建上面动态创建的类中提到的给定属性列表,并将该列表绑定到wpf中的datagrid。 我想以给定的格式创建列表,如Order是我的类名,它还包含mMember类等属性,但类采用Ready格式。最后,我将订单绑定到datagrid

      List<Order> orders = new List<Order>();

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            orders.Add(new Order() { MB_ID =Convert .ToInt64 ( dt.Rows[i]["MB_ID"]), Name = dt.Rows[i]["MEMBER_NAME"].ToString(), ItemCount = dt.Rows[i]["MB_ID"].ToString(), CompanyId = dt.Rows[i]["COMPANY_ID"].ToString() });
        }
  // Set the data context
        this.DataContext = orders;
列表顺序=新列表();
对于(int i=0;i
现在我想为mMember类创建类似的列表。所以我为同一个项目创建了一个实例,但它不起作用

    IList list1 = (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(new Type[] { loObject.GetType() }));
IList list1=(IList)Activator.CreateInstance(typeof(List).MakeGenericType(新类型[]{loObject.GetType()}));

如何将列表数据添加到此中并绑定到datagrid

我也遇到了同样的问题,并且能够在您的代码的帮助下解决它。列表对象本身的创建代码正确且有效。之后,您需要用动态创建的对象填充列表。您只需创建对象,例如通过“object=Activator.CreateInstance(type)”,填充对象,然后添加“list1.add(object)”。

为什么。。。你为什么要这么做?不管你想做什么,我很确定有一个更简单的方法。你能解释一下吗。但对于动态创建的类及其属性。提前感谢。为什么需要创建动态类?