private IPlayFabPlugin GetPluginInternal(PluginContract contract, string instanceName) { var key = new PluginContractKey { _pluginContract = contract, _pluginName = instanceName }; IPlayFabPlugin plugin; if (!this.plugins.TryGetValue(key, out plugin)) { // Requested plugin is not in the cache, create the default one switch (contract) { case PluginContract.PlayFab_Serializer: plugin = this.CreatePlugin <SimpleJsonInstance>(); break; case PluginContract.PlayFab_Transport: plugin = this.CreatePlayFabTransportPlugin(); break; default: throw new ArgumentException("This contract is not supported", "contract"); } this.plugins[key] = plugin; } return(plugin); }
private void SetPluginInternal(IPlayFabPlugin plugin, PluginContract contract, string instanceName) { if (plugin == null) { throw new ArgumentNullException("plugin", "Plugin instance cannot be null"); } var key = new PluginContractKey { _pluginContract = contract, _pluginName = instanceName }; this.plugins[key] = plugin; }