1.5.0 • Published 1 month ago

com.cobilas.unity.core.net4x v1.5.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

Cobilas Core

Descripition

Cobilas Core Net4x is a utility library for CSharp.

Json

(namespace:Cobilas.IO.Serialization.Json) Only present in the NuGet version. The static class Json grants static read and write functions.

JsonContractResolver

Used by JsonSerializer to resolve a JsonContract for a given Type. Furthermore, JsonContractResolver determines how the fields of an Object will be serialized.

ATLF(Arquivo de tradução de leitura facil)

ATLF (Easy to Read Translation File) can be used to create and load translations for apps.

#>Header
The use of the header is not mandatory.<#
#! version:/*std:1.0*/
#! encoding:/*utf-8*/

#> Comment <#
#> ATLF format(1.0) <#

#> Uni-line marking <#
#! Tag1:/*value1*/

#> Multi-line marking <#
#! Tag2:/*
value1
value2
value3
value4
*/

How to read ATLF

static void Main(string[] args) {
    using ATLFReader reader = ATLFReader.Create(@"C:\folder1\file.txt");
    reader.Reader();
    Console.WriteLine($"tag.value.1:{reader.GetTag("tag.value.1")}");
    Console.WriteLine($"tag.value.2:{reader.GetTag("tag.value.2")}");
    Console.WriteLine($"tag.value.3:{reader.GetTag("tag.value.3")}");
}

The other reading functions.

  • The ATLFNode[]:ATLFReader.GetHeader() function allows you to get the header tags.
  • The ATLFNode[]:ATLFReader.GetAllComments() function allows you to get all comments. The ATLFNode[]:ATLFReader.GetTagGroup(string path) function allows you to obtain tags that belong to the same path.
/*C:\folder1\file.txt
* #! version:/*std:1.0* /
* #! encoding:/*utf-8* /
* 
* #! tag.value.cop1:/*value1* /
* #! tag.value.map.cop1:/*value1* /
* #! tag.value.map.cop2:/*value1* /
* #! tag.value.cop2:/*value1* /
* #! tag.value.cop3:/*value1* /
*/
static void Main(string[] args) {
    using ATLFReader reader = ATLFReader.Create(@"C:\folder1\file.txt");
    reader.Reader();
    foreach(var item in reader.GetTagGroup("tag.value.map"))
        Console.WriteLine(item);
}

How to write ATLF

static void Main(string[] args) {
    using ATLFWriter writer = ATLFWriter.Create(File.OpenWrite(@"C:\folder1\file.txt"));
    writer.WriteHeader();//The header is not mandatory but if you add a header, call this function first.
    writer.WriteComment("my tag1");
    writer.WriteNode("tag1", "value1");
    writer.WriteWhitespace("\r\n");//This function is called automatically when the `Indent` property is `true`. By default the `Indent` property is `true`.
    writer.WriteComment("my tag2");
    writer.WriteNode("tag2", "value2");
    writer.WriteWhitespace(2, "\r\n");//This function is called automatically when the `Indent` property is `true`. By default the `Indent` property is `true`.
    writer.WriteComment("my tag3");
    writer.WriteNode("tag3", "value3");
}

Encoders and decoders

Regarding encoders and decoders, ATLF allows the creation of customized encoders and decoders. To use a custom encoder or decoder, assign a version to your custom encoder or decoder using the Version property and then assign the version of the custom encoder or decoder in the TargetVersion property of the ATLFWriter and ATLFReader classes.

Creating a custom encoding class

To create a custom encoding class, the class must inherit the ATLFVS10Encoding class.

Creating a custom decoding class

To create a custom decoding class, the class must inherit the ATLFVS10Decoding class.

Cobilas.Core.Net4x is on nuget.org

To include the package, open the .csproj file and add it.

<ItemGroup>
  <PackageReference Include="Cobilas.Core.Net4x" Version="1.4.0" />
</ItemGroup>

Or use command line.

dotnet add package Cobilas.Core.Net4x --version 1.4.0

Cobilas.Core.Net4x is on NPM

Include in npm package

"dependencies": {
    "com.cobilas.unity.core.net4x":"1.4.0"
}

Or use command line.

npm i com.cobilas.unity.core.net4x