ByteDev.Reflection
2.3.1
dotnet add package ByteDev.Reflection --version 2.3.1
NuGet\Install-Package ByteDev.Reflection -Version 2.3.1
<PackageReference Include="ByteDev.Reflection" Version="2.3.1" />
paket add ByteDev.Reflection --version 2.3.1
#r "nuget: ByteDev.Reflection, 2.3.1"
// Install ByteDev.Reflection as a Cake Addin #addin nuget:?package=ByteDev.Reflection&version=2.3.1 // Install ByteDev.Reflection as a Cake Tool #tool nuget:?package=ByteDev.Reflection&version=2.3.1
ByteDev.Reflection
Library of reflection related functionality and extension methods.
Installation
ByteDev.Reflection is hosted as a package on nuget.org. To install from the Package Manager Console in Visual Studio run:
Install-Package ByteDev.Reflection
Further details can be found on the nuget page.
Release Notes
Releases follow semantic versioning.
Full details of the release notes can be viewed on GitHub.
Usage
AssemblyEmbeddedResource
Represents an assembly's embedded resource.
// Retrieve an assembly's embedded resource and save it to disk
var assembly = Assembly.GetExecutingAssembly();
var embeddedFile = "EmbeddedResource1.txt";
AssemblyEmbeddedResource resource = AssemblyEmbeddedResource.CreateFromAssembly(assembly, embeddedFile);
resource.Save(Path.Combine(@"C:\Temp\", embeddedFile));
ObjectConstruction
Initialize objects by calling their constructors using reflection.
// Initialize with no params
public class PrivateCtor
{
private PrivateCtor()
{
}
}
// ...
var test = ObjectConstruction.ConstructNonPublic<PrivateCtor>();
// Initialize with params
public class InternalCtorWithParam
{
public int Value { get; set; }
internal InternalCtorWithParam(int value)
{
Value = value;
}
}
// ...
var parameters = new Dictionary<Type, object>
{
{typeof(int), 10}
};
var test = ObjectConstruction.ConstructNonPublic<InternalCtorWithParam>(parameters);
// test.Value == 10
Extension Methods
To use any extension methods simply reference the ByteDev.Reflection
namespace.
Assembly:
- GetAssemblyAttribute
- GetFileVersion
- GetManifestResourceName
- GetSubClasses
- GetVersion
Generic:
- InvokeMethod
MemberInfo:
- GetAttribute
- HasAttribute
Object:
- GetPropertyValue<T>
- GetPropertyValue
- GetPropertiesAsDictionary
- SetPropertyReadOnlyValue
- SetPropertyValue
Type:
- GetBaseTypes
- GetConstants
- GetConstantsValues
- GetDefault
- GetEnumProperties
- GetPropertyOrThrow
- GetPropertiesWithAttribute
- GetPropertiesOfType
- GetImplementedInterfaces
- GetStaticPropertyOrThrow
- GetStaticPropertyValue
- HasAttribute
- IsInNamespace
- IsNullable
- IsTestClass
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on ByteDev.Reflection:
Package | Downloads |
---|---|
ByteDev.FormUrlEncoded
.NET Standard library for serializing and deserializing form URL encoded data. |
|
ByteDev.Azure.KeyVault
.NET Standard library that provides some extended Azure Key Vault functionality build on top of the official Azure packages. |
GitHub repositories
This package is not used by any popular GitHub repositories.