HKW.FastMember
1.0.0
dotnet add package HKW.FastMember --version 1.0.0
NuGet\Install-Package HKW.FastMember -Version 1.0.0
<PackageReference Include="HKW.FastMember" Version="1.0.0" />
paket add HKW.FastMember --version 1.0.0
#r "nuget: HKW.FastMember, 1.0.0"
// Install HKW.FastMember as a Cake Addin #addin nuget:?package=HKW.FastMember&version=1.0.0 // Install HKW.FastMember as a Cake Tool #tool nuget:?package=HKW.FastMember&version=1.0.0
Original project: fast-member
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 <a href="http://marcgravell.blogspot.com/2012/01/playing-with-your-member.html" target="_blank">on my blog</a>; example usage is simply:
var accessor = TypeAccessor.Create(type);
string propName = // something known only at runtime
while( /* some loop of data */ )
{
accessor[obj, propName] = rowValue;
}
or
// 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:
IEnumerable<SomeType> 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:
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.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Microsoft.CSharp (>= 4.7.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on HKW.FastMember:
Package | Downloads |
---|---|
HKW.ViewModels
Package Description |
|
HKW.TOML
HKW.TOML is TOML reader, writer, deserializer, serializer and generate classes for C#. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 344 | 12/16/2023 |
core-clr support (rtm)