C# 初始化构造函数中相互包含的2个类
我有两个类,ExceptionHandler和Localizer。异常处理程序C# 初始化构造函数中相互包含的2个类,c#,C#,我有两个类,ExceptionHandler和Localizer。异常处理程序构造函数如下所示: public ExceptionHandler(ILocalizer localizer, string logLocation) { Localizer = localizer; LogLocation = logLocation; } public Localizer(IExceptionHandler exceptionHandler) { ExceptionHand
构造函数
如下所示:
public ExceptionHandler(ILocalizer localizer, string logLocation)
{
Localizer = localizer;
LogLocation = logLocation;
}
public Localizer(IExceptionHandler exceptionHandler)
{
ExceptionHandler = exceptionHandler;
}
此外,在类中,定位器
用于本地化某些异常消息,如英语中的“未找到文件”,荷兰语中的“Bestand niet gevonden”
另一方面,定位器类可能有某些异常,因此需要异常处理程序类。构造函数如下所示:
public ExceptionHandler(ILocalizer localizer, string logLocation)
{
Localizer = localizer;
LogLocation = logLocation;
}
public Localizer(IExceptionHandler exceptionHandler)
{
ExceptionHandler = exceptionHandler;
}
现在,是我还是我想要的不可能实现?有什么解决方法可以让它工作吗?您可以在创建
定位器
和异常处理程序
对象之后设置定位器。异常处理程序
。只需确保构造函数不会抛出异常,或者本地化程序构造函数中的异常是在没有异常处理程序的情况下处理的
是的,确实不可能。循环依赖性。。一定是设计上的疏忽!:(我想它也会反过来工作?但这真的是一个“干净”的解决方案还是我应该改变我的代码设计?@Krowi我不知道它是否“干净”,但根据提供的信息,我会这样做。如果我有更多信息,谁知道呢,也许我会完全重新设计代码。计划是在应用程序启动时初始化这两个类。这样我就有了两个“全局”类,我可以在应用程序中的任何地方使用。(我试过DI,但现在它太让人困惑了,与我的问题毫无关系)