IPersistentSubscriptionService接口的方法通过SubscriptionManager<T>实现,如例B-4所示。例B-4与例B-2非常相似,但订阅者是被存储到SQL Server中,而不是存储在内存的字典对象中。
例B-4: 在SubscriptionManager<T>中管理持久订阅者
例B-4: 在SubscriptionManager<T>中管理持久订阅者
public abstract class SubscriptionManager<T> where T : class本U R L:http://www.qqread.com/aspdotnet/j397819.html进入讨论组讨论。
{
static void AddPersistent(string address,string eventsContract,
string eventOperation)
{
//使用ADO.NET在 SQL Server中存储订阅
}
static void RemovePersistent(string address,string eventsContract,
string eventOperation)
{
//使用ADO.NET将订阅从SQL Server中移除
}
[OperationBehavior(TransactionScopeRequired = true)]
public void Unsubscribe(string address,string eventsContract,
string eventOperation)
{
if(String.IsNullOrEmpty(eventOperation) == false)
{
RemovePersistent(address,eventsContract,eventOperation);
}
else
{
string[] methods = GetOperations( );
Action<string> removePersistent = delegate(string methodName)
{
RemovePersistent(address,eventsContract,methodName);
};
Array.ForEach(methods,removePersistent);
}
}
[OperationBehavior(TransactionScopeRequired = true)]
public void Subscribe(string address,string eventsContract,
string eventOperation)
{
if(String.IsNullOrEmpty(eventOperation) == false)
{
AddPersistent(address,eventsContract,eventOperation);
}
else
{
string[] methods = GetOperations( );
Action<string> addPersistent = delegate(string methodName)
{
AddPersistent(address,eventsContract,methodName);
};
Array.ForEach(methods,addPersistent);
}
}
//更多成员
}
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- .NET开发人员犯的6大安全错误 (6次浏览)
- 请跟我来--使用Ext搞个原型 (1次浏览)
- ASP.NET 3.5 Extensions带来什么 (1次浏览)
- 应用WEB标准会使ScrollTop属性失效! (0次浏览)
- Cache用法之缓存页面和缓存数据 (0次浏览)
- 支持正则表达式的UrlMapping (0次浏览)
- 关于ASP.NET 2.0的目录结构变化 (0次浏览)
- WPF中Closing窗体时调用Hide()方法异常 (0次浏览)
- 对象数组根据某属性列的灵活排序 (0次浏览)
- DB2 9和ASP.NET 2.0构建下一代应用程序 (0次浏览)



