1
在我的項目中,我有不同的程序集。獲取不同組件的上下文
SignalR集線器(和客戶端MVC4文件)位於Website
項目中。
我中心是這樣的:
public class PredictHub : Hub
{
private readonly IChat _chat;
public PredictHub(IChat chat)
{
_chat = chat;
}
public void Chat(String message)
{
_chat.AddMessage(message);
}
}
在我的第二組件Business
的IChat.cs
和Chat.cs
直播:
public class Chat : IChat
{
public void AddMessage(String message)
{
var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
}
}
但由於Chat.cs
是在Business
裝配ChatHub
指令不是因爲知道它沒有被引用。
這怎麼解決?
最簡單的方法是將'Chat.cs'移動到您的'Website'項目中。 – 2013-04-06 16:18:12
是的,當然:)但是我在該程序集中擁有所有業務邏輯,移動所有內容都會產生大量工作。 – YesMan85 2013-04-06 16:19:24
使用類似「IChatHub」的界面即界面 - 通常是解決這類問題的方法。有一個擁有'界面'的基礎庫 - 你可以從兩個地方引用 - 你可以擁有一切。你只需要在你的網站上實現這個接口(甚至更好的是其他的lib)。 – NSGaga 2013-04-06 19:24:28