# fast-member **Repository Path**: loongeeker/fast-member ## Basic Information - **Project Name**: fast-member - **Description**: No description available - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-05 - **Last Updated**: 2025-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Fast access to .net fields/properties ===================================== In .NET reflection is slow... well, kinda slow. If you need access to the members of an arbitrary type, with the type and member-names known only at runtime - then it is frankly **hard** (especially for DLR types). This library makes such access easy and fast. An introduction to the reasons behind fast-member can be found on my blog; example usage is simply: ```csharp var accessor = TypeAccessor.Create(type); string propName = // something known only at runtime while( /* some loop of data */ ) { accessor[obj, propName] = rowValue; } ``` or ```csharp // obj could be static or DLR var wrapped = ObjectAccessor.Create(obj); string propName = // something known only at runtime Console.WriteLine(wrapped[propName]); ``` ### Ever needed an `IDataReader`? This is pretty common if you are doing object-mapping between an object model and ADO.NET concepts such as `DataTable` or `SqlBulkCopy`; loading a `DataTable` (yes, some people still use it) from a sequence of typed objects can now be as easy as: ```csharp IEnumerable data = ... var table = new DataTable(); using(var reader = ObjectReader.Create(data)) { table.Load(reader); } ``` (the `Create` method offers parameters to control the specific members, if needed) Or if you want to throw the data into a database as fast as humanly possible: ```csharp using(var bcp = new SqlBulkCopy(connection)) using(var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); } ``` ### Ahead of Time Library emits IL code during runtime. Will not work in constrained Ahead of Time environments. Xamarin iOS and Unity IL2CPP are such.