Lys*_*Lys 7 c# circular-reference
我有两个组件A和B.
A现有对B的引用,必须保持这种方式.现在我对B进行了一些需要引用A的更改.因此发生循环引用.
一点细节:
A有一些属性网格,B中的对话框需要托管.因此,为了避免这个循环引用问题,我尝试在A&B都引用的第三个程序集中定义网格的接口,并且使B仅引用接口.
我面临的两个问题:
在A内部定义的网格内部有太多的自定义数据类型(特定属性),我必须为它们中的每一个定义接口.
我看到这个例子与函数参数一起工作,例如通过传入的接口调用目标函数.但是考虑到下面的代码它会如何适合 - 我不能新建一个ICustomPropertyGridWrapper ...
object = new CustomPropertyGridWrapper(...)
m_property.SelectedObject = object;
这是C#语言设计的问题。在 C/C++ 中,您只需使用标头来定义编译单元的接口即可解决依赖关系。
在 C# 中没有标头。你有三个选择
第三种通常是在 C# 中处理这些情况的方式,但它不像 C/C++ 解决这个问题那么优雅。对于大型代码库,您必须从一开始就考虑到这一点。
| 归档时间: |
|
| 查看次数: |
6945 次 |
| 最近记录: |