-> What is it?
The name DotNetResourcesExtensions
refers to exactly what is meant to be:
"Defines extensions for .NET for Resource API's"
.
That is it.
This project aims to find new alternatives and ways of reading , getting , writing and loading .NET resources on a managed application.
The result of this are the IResourceLoader
and IResourceTransferer
interfaces , and their accompanying classes.
But it does not stop here. It defines also diverse classes for reading and writing resources:
-
Custom binary resources. It is the first custom resources binary format for this library.
-
Custom JSON resources. Writes and reads out custom JSON resources using the
System.Text.Json
API's. -
Custom XML resources. Writes and reads out custom XML (NOT
Resx
) using theSystem.Xml
namespace. -
Custom MS-INI resources. Although that sounds weird , those classes depend on a pseudo-syntax of the usual INI files to write and read resources.
-
Custom ResX resources. These are modified copies of the ResX classes defined in the Windows Forms Project. The Windows Forms ResX reader cannot read the results produced from them , because they are modified to accomondate some changes in order to make them cross-compatible. Additionally the Custom ResX reader can now read all ResX formats , old and new , effectively.
- Due to the modifications happened , one of them was to remove the usage of BinaryFormatter , and create an
alternative to it. The result was a custom formatter that is allowed to serialize only specific objects.
- You can also use it and extend it too!
- Due to the modifications happened , one of them was to remove the usage of BinaryFormatter , and create an
alternative to it. The result was a custom formatter that is allowed to serialize only specific objects.
Also this project includes a build target and infrastracture to use for MSBuild projects for resource generation
through the DotNetResourcesExtensions
project. See the BuildTasks
project for more info.
You may also find useful the new Windows Native Resources Reader plugin. You can see more information about it and how-to-use in the docs.
Currently , the implementation is fairly enough stable. You can see the usage documentation here.
Please report any bugs you have found out during the project usage.
Most programs are imperfect , and even this one is no exception. I will be very glad to hear about any bugs you have found!
(This project is open-source and is licensed to you under the MIT License)