我在解决方案中有5个项目。 A和B是两个项目。 B已经引用了A.现在我想从B中调用A中的方法。但问题是循环依赖。我看到它通过使用事件来解决。我试过这个:
A------->B(reference A)
B------->A(dependency)
我也是从A使用事件尝试过的。但我无法向事件添加侦听器方法,因为侦听器方法在B中。我无法访问B。
有谁能告诉我如何使用事件解决这个问题。代表们,我在活动方面没有多少经验。如果我错了,请纠正我。
答案 0 :(得分:0)
解决这个问题的方法是建立一个共同项目来弥补项目之间的差距。例如,如果您想在项目之间共享翻译词典,可以在Common项目中添加类似的内容:
// Leaving out locking and error handling
public static Lexicon
{
private static Func<string, string> _lookup=null;
public static void Initialize(Func<string, string> lookup)
{
_lookup=lookup;
}
public static string Translate(string key)
{
return _lookup(key);
}
}
如果项目A实际上包含翻译词典,它可以像这样初始化词典:
Lexicon.Initialize(key => dictionary[key]);
两个项目都可以使用Lexicon