Commit Graph

93 Commits (7de0f5301480fc4126c5bebe0a2dd25d2c2f0886)

Author SHA1 Message Date
David Hall 3596f9999b Changed ASCII encoder to UTF8 encoder in string helper classes for broader character support. 2023-01-02 14:38:38 -07:00
David Hall 25392d6ab8 Added Type.GetConstants extension method 2023-01-02 10:33:03 -07:00
David Hall d480e3040e Fixed bug in InteropExtensions.Write(IEnumerable<string>...) method that wiped out existing values if an offset was provided. 2023-01-02 10:32:35 -07:00
David Hall 630261a8c4 Fixed bug in IEnumString.Enum extension method 2022-11-16 11:53:02 -07:00
dahall 0320c6b7b6 Enabled nullable support for string related classes 2022-07-20 17:33:26 -06:00
dahall fb9787ec0a Fixed bug in StringHelper.GetByteCount 2022-07-05 09:43:24 -06:00
dahall dd2e46ae75 Fixed minor error handling in EnumFlagIndexer and added Intersect method. 2022-02-08 14:53:03 -07:00
dahall 0f6fb75d3d Added StringHelper methods supporting encoders 2022-01-22 15:27:13 -07:00
dahall 747da30302 Fixed small bug in IntPtr.ToStringEnum 2022-01-16 17:21:11 -07:00
dahall d53279dcc6 Fixed bug in IntPtr.ToStringEnum method that failed when just the ending null terminator was present. 2021-05-02 21:51:20 -06:00
dahall 483d76df37 Changed return value of OpenFileById from IntPtr to SafeHFILE 2021-03-02 07:55:51 -07:00
dahall 2165632d1d Added InteropExtensions.SizeOf(object) method to calculate the size of an object in native memory. It will handle blittalbe structures, primitives, strings and arrays or enumerable lists of those items. 2021-01-20 16:53:12 -07:00
dahall 5cd53d5c7b Extended IntPtr.Write(object value...) method to handle almost all cases of object types (arrays, lists, etc.) 2021-01-11 11:22:39 -07:00
dahall 5ce303ed5a Added InteropExtensions.UnsafePtrToArray method 2020-11-11 19:57:53 -07:00
dahall c2640876c3 Added IntPtr.AsRef extension method 2020-11-10 21:35:58 -07:00
dahall db7884b6f5 Overloaded IntPtr.LinkedListToEnum extension method to allow for offset func. 2020-11-04 13:04:42 -07:00
dahall dabe7bcd84 Added methods to assist with memory alignment. 2020-09-10 10:11:58 -06:00
dahall 704987c2a1 Extended all MarshalToPtr methods with lock and unlock pointer functions and optional parameters. 2020-07-19 16:45:54 -06:00
David Hall 26f61b9189
Merge pull request #142 from NN---/getiptable_raw
Add zero copy GetIpNetTable2.
2020-07-12 08:30:02 -06:00
NN ca36a6bc95
Fix passing non-readonly-struct by read-only reference (#147) 2020-07-12 07:54:40 -06:00
NN bc139f52a7 Add zero copy GetIpNetTable2. 2020-07-12 10:09:39 +03:00
dahall 8e981f25b6 Added IsMethodCompatibleWithDelegate method 2020-06-09 19:00:42 -06:00
dahall 589d47c3b6 Added classes to enumerate on pointer elements (NativeMemoryEnumerator and UntypedNativeMemoryEnumerator). Changed IntPtr.ToIEnum methods to use new classes and added IntPtrGetEnumerator extension methods. 2020-05-15 16:37:15 -06:00
dahall 5c726943b3 Added IntPtr.AsSpan and IntPtr.AsReadOnlySpan extension methods 2020-05-15 11:40:11 -06:00
David Hall 08273f800c Added StringHelper.IsNullOrWhiteSpace to account for missing function prior to .NET 4. (#86) 2019-12-30 10:25:45 -07:00
David Hall f74d478b28 Added support for serialization to WriteNoChecks 2019-12-10 06:55:54 -07:00
David Hall ad3e1e06ce Fixed EnumInheritance 2019-12-10 06:55:20 -07:00
David Hall 89d17b5241 Added ISerializable support as last option for pushing and pulling from memory pointers 2019-12-09 07:22:20 -07:00
David Hall 159f1c8235 Added EnumInheritance and InheritsFrom extension methods. 2019-12-06 17:09:08 -07:00
David Hall 2cb4245f37 Added IsMarshalable method and converted most uses of IsBlittable to it. Fixed MarshalToPtr(Array ... method to not throw casting exception. 2019-12-06 17:07:21 -07:00
David Hall 80b7256543 Changed unspecified size to uint.Max instead of UIntPtr.Max to prevent overflow 2019-11-25 19:32:51 -07:00
David Hall a94e60820b Reworked memory manipulation functions in InteropExtensions and IntPtrConverter to use new marshaling directives and to drive consistency of use across libs (i.e. call same method to do same work). 2019-11-19 12:52:44 -07:00
David Hall 8f289e2760 Changed to support IVanaraMarshaler requiring addition of size parameter to some methods. 2019-11-13 23:02:51 -05:00
David Hall 835487e466 Added GetOrderedFields Type extension method. 2019-10-29 10:43:18 -06:00
David Hall 05bd6d2098 Changed Write method to take structure as 'in' param. 2019-10-17 09:13:45 -06:00
David Hall 1a7aaf37f7 Fixed SetField so it works with ref structs 2019-10-07 18:42:49 -06:00
David Hall 1450d98b32 Fixed BitPosition logic for exception 2019-09-25 14:12:17 -05:00
David Hall 4322becff6 Added better documentation 2019-09-05 19:59:25 -06:00
David Hall 9d4758ed5d Added Write methods to SafeMemoryHandleExt. Added size checking from InteropExtension methods. Added offset param to ToStructure. 2019-08-21 10:18:07 -06:00
David Hall c3521b7742 MAJOR BREAKING CHANGEs:
1) Obsoleted Vanara.Extensions.InteropExtensions.StructureToPtr for a name change to MarshalToPtr for consistency.
2) Added parameter to all methods reading memory that allows developer to indicate size of allocated memory they read from.
3) Enabled the ability to read/write enum values from memory in all extension methods.
4) Added Write methods for writing to memory
2019-08-17 21:13:57 -06:00
David Hall ee72119e36 MAJOR BREAKING CHANGE: Moved all extension methods for System.Object to Vanara.Extensions.Reflection namespace to avoid Intellisense overloads with methods that will be rarely used. 2019-08-17 14:42:49 -06:00
David Hall d72cca74cb Fixed documentation error 2019-07-27 12:55:59 -06:00
David Hall 277bddcf58 Removed redundant code from CheckHasValue and used IsValid 2019-07-23 13:52:32 -06:00
David Hall 5b4853db7e Added GetStaticFieldValue method 2019-07-19 17:32:05 -06:00
David Hall ceff4504f0 Changed to BitHelper broke too much so reverted. 2019-07-16 07:43:10 -06:00
David Hall 6eb0aa354d Added ToInt64, TimeSpan.ToFileTimeStruct, and ToTimeSpan methods for FILETIME and modified ToString method so that it will display a TimeSpan value if negative. 2019-07-13 21:39:13 -06:00
David Hall 379e23ccb9 Added conversion methods To and ToEnum for fast conversions. 2019-07-13 16:27:46 -06:00
David Hall 1996fadd69 Made GetBit and GetBits extension methods 2019-07-10 11:27:04 -06:00
David Hall 025e6529de Added CreateOrDefault method to get best default value for a structure. Added InvokeStaticMethod to allow for calling a static method generically. 2019-07-09 09:23:41 -06:00
David Hall 4905441377 Added pointer value in front of string with optional params to remove. 2019-07-03 14:42:51 -06:00