{"id":24408045,"url":"https://github.com/alexboia/csharp-pococommandlinereader","last_synced_at":"2026-05-20T07:04:37.907Z","repository":{"id":272642117,"uuid":"917269810","full_name":"alexboia/CSharp-PocoCommandLineReader","owner":"alexboia","description":"Automate reading simple POCOs from command line","archived":false,"fork":false,"pushed_at":"2025-01-15T18:18:38.000Z","size":46,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T08:43:03.514Z","etag":null,"topics":["command-line","command-line-csharp","command-line-reader","command-line-tool","csharp","csharp-code","csharp-library","dotnet","poco","poco-libraries"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexboia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-15T17:12:31.000Z","updated_at":"2025-01-15T18:18:40.000Z","dependencies_parsed_at":"2025-01-15T20:21:59.320Z","dependency_job_id":"fed7bb9d-23fd-451e-97a3-8308d5aaf215","html_url":"https://github.com/alexboia/CSharp-PocoCommandLineReader","commit_stats":null,"previous_names":["alexboia/csharp-pococommandlinereader"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alexboia/CSharp-PocoCommandLineReader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexboia%2FCSharp-PocoCommandLineReader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexboia%2FCSharp-PocoCommandLineReader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexboia%2FCSharp-PocoCommandLineReader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexboia%2FCSharp-PocoCommandLineReader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexboia","download_url":"https://codeload.github.com/alexboia/CSharp-PocoCommandLineReader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexboia%2FCSharp-PocoCommandLineReader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271073387,"owners_count":24694538,"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-18T02:00:08.743Z","response_time":89,"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":["command-line","command-line-csharp","command-line-reader","command-line-tool","csharp","csharp-code","csharp-library","dotnet","poco","poco-libraries"],"created_at":"2025-01-20T05:33:57.994Z","updated_at":"2026-05-20T07:04:37.859Z","avatar_url":"https://github.com/alexboia.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CSharp-PocoCommandLineReader\n\nAutomate reading simple POCOs from command line. And by simple I mean *really* simple:\n\n- either built-in types;\n- or collection of scalar values.\n\n![Sample usage](/screenshots/Sample.gif?raw=true)\n\nIt is more of a fun project, a lame kata, if you will, to practice the basics, but it proved useful in some manual testing scenarios as well.\nI do hope it will help others as well.\n\n## Support\n\nSupported built-in types:\n\n- `int`\n- `uint`\n- `short`\n- `ushort`\n- `long`\n- `ulong`\n- `string`\n- `bool`\n- `float`\n- `double`\n- `decimal`\n- `char`\n- `byte`\n- `sbyte`\n- `System.Guid`.\n\nSupported collection types (typed colllections, type can be any of the above):\n- typed enumerables: `IEnumerable\u003cT\u003e` which is populated as a `List\u003cT\u003e`;\n- lists - `IList\u003cT\u003e` and `List\u003cT\u003e`;\n- typed arrays - `T[]`.\n\n## Rules\n\n- public instance properties are searched for, inheritance is observed;\n- must have a public parameterless constructor;\n- most of the values are parsed with the available `TryParse` methods for that respective type, with the following exceptions:\n\t- for a `Guid`, if entering `new()`, a new guid will be generated, otherwise has to be manually inserted as everything else;\n\t- for `bool`, the following values are also supported:\n\t\t- truthy values: `yes`, `da`, `1`;\n\t\t- falsy values: `no`, `nu`, `0`.\n- default values for regular properties are whatever they are when the object gets created;\n- default value types for the element of a collection is:\n\t- `Activator.CreateInstance( elementType )` if it's a value type;\n\t- `null` if not.\n- collection must have sizes specified up-front;\n- one may decorate properties with `System.ComponentModel.DescriptionAttribute` to customize the prompts, although one *does not have to*.\n\n## Bells and whistles\n\nI used this [nifty little class](https://github.com/raminrahimzada/cConsole) by @raminrahimzada to provide colored console output when rendering the prompts.\n\n## How to use\n\nNo library to install. Just copy the source files wherever you need and then do something like this:\n\n```csharp\nPocoCommandLineReader\u003cCustomerSummary\u003e reader = new PocoCommandLineReader\u003cCustomerSummary\u003e();\nCustomerSummary obj = reader.Read( \"Read customer summary\" );\n```\n\nAlso see samples ([`CSharp-PocoCommandLineReader.SampleUsage`](https://github.com/alexboia/CSharp-PocoCommandLineReader/blob/main/CSharp-PocoCommandLineReader.SampleUsage/Program.cs)).\n\n## What's next\n\nNothing: unless I find something's wrong with it or that I want some improvements, I don't plan on developing on a regular basis. Feel free to fork and use as you like.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexboia%2Fcsharp-pococommandlinereader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexboia%2Fcsharp-pococommandlinereader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexboia%2Fcsharp-pococommandlinereader/lists"}