【问题标题】:How list controls stored in assembly in code?列表控件如何存储在代码中的程序集中?
【发布时间】:2011-10-31 16:45:53
【问题描述】:

我的项目包含很少的用户控件(每个都代表一个游戏,但这无关紧要),在第二个项目(游戏客户端)中,我想列出第一个库中的控件,创建它们的对象并将该控件附加到一个容器。我该怎么做?

这些是 WPF 项目。请注意,我不想使用 VS 工具箱,因为该库将独立更新,而客户端则不会。

【问题讨论】:

    标签: c# .net wpf reflection controls


    【解决方案1】:

    假设你所有的控件都继承自 Control 类,你可以这样做

       List<Type> res = new List<Type>();
            foreach (Type aType in   Assembly.LoadFile("yourdll.dll").GetTypes())
            {
                if(aType.IsSubclassOf(typeof(Control)))
                    res.Add(aType);
            }
    

    因此,您将在 res 列表中获得所有类型。

    编辑

    这样你就可以创建你的实例了

     Control myControl = (Control)Activator.CreateInstance(aType);
    

    【讨论】:

    • 那太好了 ;) 你能提供一个示例如何创建该类型的 now 对象吗?
    猜你喜欢
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多