我有一个问题:
Control controlToGetFocus = this;
if (this.Parent.GetType() == typeof(...))
我无法从这里访问该类,因为它们来自不同的项目,并且假设是分开的。
我有什么方法可以做到这一点,也许还有其他方法吗?我确实尝试过this.Parent.Name
但效果很好,但我的眼睛不喜欢那个解决方案;)
答案 0 :(得分:4)
如果你需要检查'this.Parent'是否是一个特定的实现,你应该使用接口而不是特定的类型。如你所说,你的项目应该是分开的。但项目共享通用接口是相当不错的。
给定这样的界面:
public interface IDoStuff { }
您可以检查Parent是否像这样实现它:
if (this.Parent is IDoStuff) { ... }
注意:这种方法当然要求您控制'父母'中实例的实现。
NOTE2 :为了澄清,通用接口必须放在两个项目都可以引用的单独项目/程序集中。
答案 1 :(得分:2)
您可以使用
if (this.Parent.GetType().ToString() == "YOURTYPE")
更新:
您可以使用需要共享的类型创建Common项目,并从任何其他项目引用此项目。然后以下工作:
if (this.Parent is YOURINTERFACETYPE)
假设Parent对象实现了YOURINTERFACETYPE