public void AddProvider(RepresentationProvider provider) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } MainThread.Ensure(); var agentProvider = provider as AgentRepresentationProvider; if (agentProvider != null) { if (agentRepresentationProvider != null) { throw new InvalidOperationException( $"{agentRepresentationProvider.GetType ()} already registered; " + $"only one {nameof (AgentRepresentationProvider)} can be registered"); } agentRepresentationProvider = agentProvider; } providers.Add(provider); }