void CreateWindowsConfigFileInfo() { if (this.PluginInfo.WindowsPlatform != null) { PluginInfo.ConfigFeatureInfo pluginFeatureInfo = new PluginInfo.ConfigFeatureInfo { Name = c3pServiceName, Params = new List <PluginInfo.ConfigParamInfo>(new[] { // TODO: Use some alternate means to configure the list of proxied namespaces. new PluginInfo.ConfigParamInfo { Name = "plugin-namespace:" + c3pNamespace, Value = String.Empty, }, new PluginInfo.ConfigParamInfo { Name = "plugin-namespace:" + c3pCordovaNamespace, Value = String.Empty, }, }), }; foreach (PluginInfo.NamespaceMappingInfo nsMapping in this.PluginInfo.WindowsPlatform.NamespaceMappings) { if (!String.IsNullOrEmpty(nsMapping.Namespace)) { pluginFeatureInfo.Params.Add(new PluginInfo.ConfigParamInfo { Name = "plugin-namespace:" + nsMapping.Namespace, Value = String.Empty, }); } } foreach (PluginInfo.AssemblyClassInfo classInfo in this.PluginInfo.Assembly.Classes .Where(c => c.MarshalByValue == "true")) { pluginFeatureInfo.Params.Add(new PluginInfo.ConfigParamInfo { Name = "plugin-class:" + classInfo.Name, Value = "marshal-by-value", }); } this.PluginInfo.WindowsPlatform.ConfigFiles.Add(new PluginInfo.ConfigFileInfo { Target = "config.xml", Parent = "/*", Features = new List <PluginInfo.ConfigFeatureInfo>(new[] { pluginFeatureInfo }), }); } }
void CreateIOSConfigFileInfo() { if (this.PluginInfo.IOSPlatform != null) { PluginInfo.ConfigFeatureInfo pluginFeatureInfo = new PluginInfo.ConfigFeatureInfo { Name = c3pServiceName, Params = new List <PluginInfo.ConfigParamInfo>(new[] { new PluginInfo.ConfigParamInfo { Name = "ios-package", Value = cordovaPluginIOSClass, }, new PluginInfo.ConfigParamInfo { Name = "plugin-namespace:" + c3pIOSPrefix, Value = c3pNamespace, }, new PluginInfo.ConfigParamInfo { Name = "plugin-namespace:" + c3pCordovaIOSPrefix, Value = c3pCordovaNamespace, }, }), }; foreach (PluginInfo.NamespaceMappingInfo nsMapping in this.PluginInfo.IOSPlatform.NamespaceMappings) { if (String.IsNullOrEmpty(nsMapping.Prefix)) { throw new InvalidOperationException( "Missing prefix for IOS namespace mapping: " + nsMapping.Namespace); } pluginFeatureInfo.Params.Add(new PluginInfo.ConfigParamInfo { Name = "plugin-namespace:" + nsMapping.Prefix, Value = nsMapping.Namespace, }); } foreach (PluginInfo.AssemblyClassInfo classInfo in this.PluginInfo.Assembly.Classes .Where(c => c.MarshalByValue == "true")) { pluginFeatureInfo.Params.Add(new PluginInfo.ConfigParamInfo { Name = "plugin-class:" + classInfo.Name, Value = "marshal-by-value", }); } this.PluginInfo.IOSPlatform.ConfigFiles.Add(new PluginInfo.ConfigFileInfo { Target = "config.xml", Parent = "/*", Features = new List <PluginInfo.ConfigFeatureInfo>(new[] { pluginFeatureInfo }), }); } }