public void removeObserver(System.Object target, string name, System.Object sender){
List<NSNotificationObserver> observers = observersForName (name);
if (observers == null) return;
NSNotificationObserver observer = null;
var enumerator = observers.GetEnumerator();
while (enumerator.MoveNext()) {
NSNotificationObserver aObserver = enumerator.Current;
if(aObserver.target == target){
observer = aObserver;
break;
}
}
List<NSNotificationSelectorAndSender> selectorAndSenders = observer.selectorAndSenders;
selectorAndSenders.RemoveAll (selectorAndSender => selectorAndSender.sender == sender);
if (selectorAndSenders.Count==0)
observers.Remove(observer);
if(observers.Count==0)
_name_observers.Remove(name);
}