gpt4 book ai didi

c# - 定义用于通过反射加载自定义 UserControl 的接口(interface)

转载 作者:行者123 更新时间:2023-11-30 18:08:54 25 4
gpt4 key购买 nike

我正在使用反射将自定义用户控件加载到我的表单中。我希望我所有的用户控件都有一个“开始”和“结束”方法,所以它们都应该是这样的:

public interface IStartEnd
{
void Start();
void End();
}

public class AnotherControl : UserControl, IStartEnd
{
public void Start()
{ }

public void End()
{ }
}

我想要一个通过反射加载的接口(interface),但是下面显然不能工作,因为接口(interface)不能继承一个类:

public interface IMyUserControls : UserControl, IInit, IDispose
{

}

最佳答案

没看到用例,通过反射加载用户控件需要知道控件的类型名。如果您自己动态加载了程序集,请使用 Assembly.CreateInstance,或者使用 Activator.CreateInstance 的完整类型名称,以便 CLR 可以确定需要加载的程序集。

如果您想避免指定用户控件类型名称,那么您可以使用 Assembly.GetTypes() 迭代加载的程序集并查找实现您的接口(interface)的类型。如果您能以某种方式保证程序集只包含一个控件,这只会很好地工作。

关于c# - 定义用于通过反射加载自定义 UserControl 的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2857448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com