{"id":18578163,"url":"https://github.com/miguebarrera/configxf","last_synced_at":"2026-04-16T17:41:09.138Z","repository":{"id":40877829,"uuid":"261490456","full_name":"migueBarrera/ConfigXF","owner":"migueBarrera","description":"Small helper for Xamarin forms","archived":false,"fork":false,"pushed_at":"2022-12-08T10:21:13.000Z","size":446,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-25T07:02:50.415Z","etag":null,"topics":["configuration","configuration-files","configuration-management","xamarin","xamarin-android","xamarin-forms","xamarin-ios-binding","xamarin-library","xamarin-plugin"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/migueBarrera.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-05T14:10:57.000Z","updated_at":"2020-05-06T14:56:31.000Z","dependencies_parsed_at":"2023-01-25T01:00:45.458Z","dependency_job_id":null,"html_url":"https://github.com/migueBarrera/ConfigXF","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/migueBarrera/ConfigXF","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migueBarrera%2FConfigXF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migueBarrera%2FConfigXF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migueBarrera%2FConfigXF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migueBarrera%2FConfigXF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/migueBarrera","download_url":"https://codeload.github.com/migueBarrera/ConfigXF/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migueBarrera%2FConfigXF/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270639257,"owners_count":24620695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configuration","configuration-files","configuration-management","xamarin","xamarin-android","xamarin-forms","xamarin-ios-binding","xamarin-library","xamarin-plugin"],"created_at":"2024-11-06T23:33:50.740Z","updated_at":"2026-04-16T17:41:09.091Z","avatar_url":"https://github.com/migueBarrera.png","language":"C#","funding_links":["https://ko-fi.com/Y8Y41MNBQ'"],"categories":[],"sub_categories":[],"readme":"# Use a config file for Xamarin Forms\n\nHelper que ayuda a usar un archivo de configuración para tus app Xamarin Forms. Soporta diferentes archivos para Debug y Release.\nTambien puedes usar configuraciones diferentes por plataformas Android, IOS, UWP, etc... \n\n ===================\n\n\nConfigXF for Xamarin.Forms\n\nInstall on .Net Standard Library.\n\n## NuGet\n* Available on NuGet: [ConfigXF](https://www.nuget.org/packages/ConfigXF/)\n\n----------\n\nHow use it\n-------------\n\n* Crea un archivo de configuración en cualquier sitio de tu proyecto compartido.\n![Config files](images/configfiles.png)\n* Crea una clase con las propiedades que tiene nuestro archivo de configuración. Puedes usar [quicktype](https://quicktype.io/csharp/) o similar\n* Inicializa ConfigXF en App.cs \n```\nConfigManager\u003cAppConfig\u003e.Init(Assembly.GetExecutingAssembly());\n```\n\u003e - sustituye AppConfig por tu clase creada en el paso anterior\n\u003e - puedes pasarle un parametro Newtonsoft.Json.Required para personalizar el comportamiento.\n* Usala en cualquier sitio \n```\nConfigManager\u003cAppConfig\u003e.CurrentConfig.YOURPROPERTY\n```\n\n\n\n## Config files\n\u003e - El archivo de configuración por defecto debe llamarse:\n\u003e - Debug : Config_Debug.json\n\u003e - Release : Config_Release.json\n\u003e - Override Config : Config.json Remplaza cualquier archivo de configuración anterior\n\u003e - Puedes llamar a Init con un objeto ConfigManagerSettings y configurar diferentes nombres para tus ficheros de configuracion\n\n\n## Different configuration files for each platform\n\n\u003e - En lugar de tener los ficheros de configuración igual para todas las plataformas tu puedes tener diferentes para cada plataforma\n\u003e - Solo necesitas pasarle el Assembly del proyecto de la plataforma. Crea un pequeño DependecyService .\n```\npublic interface IAssemblyService\n    {\n        Assembly GetPlatformAssembly();\n    }\n```\n\u003e - En cada plataforma implementa la interfaz\n```\npublic class AssemblyService : IAssemblyService\n    {\n        public Assembly GetPlatformAssembly()\n        {\n            return Assembly.GetExecutingAssembly();\n        }\n    }\n```\n\u003e - Usalo al iniciar ConfigXF\n```\nvar platformAsembly = DependencyService.Get\u003cIAssemblyService\u003e().GetPlatformAssembly();\n\nConfigManager\u003cAppConfig\u003e.Init(platformAsembly);\n```\n\n## Más flexibilidad\n\u003e - Puedes configurar más parametros usando ConfigManagerSettings\n```\nvar platformAsembly = DependencyService.Get\u003cIAssemblyService\u003e().GetPlatformAssembly();\n\nConfigManager\u003cAppConfig\u003e.Init(\n                new ConfigManagerSettings()\n                {\n                    Assembly = platformAsembly,\n                    Required = Newtonsoft.Json.Required.Always,\n                    DebugFile = \"Config_Debug.json\",\n                    ReleaseFile = \"MyReleaseFile.json\",\n                    MasterFile = \"MyMasterFile.json\",\n                });\n```\n\n\n\n\n# Contributing\nEste proyecto acepta cualquier tipo de aporte de todos los usuarios. Solo tienes que hacer tu Pull Request.\n\nO también puedes contribuir ayudandome con un coffee\n\n\u003ca href='https://ko-fi.com/Y8Y41MNBQ' target='_blank'\u003e\u003cimg height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi1.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiguebarrera%2Fconfigxf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiguebarrera%2Fconfigxf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiguebarrera%2Fconfigxf/lists"}