我有一种下面的方法,其中各种客户端可以简单地订阅该主题。我只想处理某人意外不多次订阅的情况。因此,在订阅之前,我需要检查主题是否已经订阅了同一客户端,然后什么也不做。我使用称为Distinct的linq方法进行了检查,但它仅返回一个观察者。我认为必须有直接的方法来做到这一点?如果有人知道,请分享相同
class SettingManger
{
private Subject<string> suject = new Subject<string>();
public IDisopable SubscribeToChange(IObserver<string>subscriber)
{
return subject.subscribe(subscriber);
}
}
如果我们假设您的对象主题具有订户列表,请尝试以下操作:
if (!subject.Subscribers.Any(x=>x.equals(subscriber)) {
subject.subscribe(subscriber);
}