c# - 交叉引用的风险
问题描述
我创建了一个名为“A”的类,引用了“B”类同时,我创建了一个名为“B”的类,引用了“A”类
我做了两个类,如下所示
class A
{
private readonly B _b;
A(B b)
{
_b = b;
}
}
class B
{
private readonly A _a;
B(A a)
{
_a = a;
}
}
但是 NInjection 不允许我做出这样的模式。
所以,我想知道为什么不允许交叉引用。
谢谢你。
解决方案
您可以使用属性注入来解决循环依赖:
class A
{
public B _b {get; set;}
public void OtherMethod() {}
}
class B
{
B(A a)
{
a._b = this;
}
}
推荐阅读
- excel - 将数据从一个工作表复制到另一个工作表而不进行格式化,并使用单元格来组织副本
- bash - 如何添加或替换文件中可能包含特殊字符的部分行?
- html - 下拉按钮列表未显示在屏幕上
- c# - 在.net core MVC中同时创建实体、关系和相关实体
- firebase - 使用 Firebase crashlytics 反应原生
- sql - 如何对 MongoDB 中的文档值进行类型检查?
- html - 如何使 BootStrap“carousel-item”类中的 HTML SVG 代码在移动屏幕和小屏幕中响应?
- python - 获取 RelatedObjectDoesNotExist 错误访问自定义表单上的字段
- python - 在数据框中切片对象类型的值
- pythonanywhere - 更新为我的 python-Twitter-bot 提供输入的 .csv 文件