Avalanche.Accessor
Accessor introduces records of IWriterBase writers that are used for accessing data in different ways, reading, writing, constructing, deconstructing, etc. Accessors unify class and struct access, serializers, printer-parsers under same set of interfaces.
// Create service
IService service = Services.Create(Avalanche.Accessor.Dto.Module.Instance);
// Create container target
IContainerTarget target = DtoTarget.List(typeof(List<int>));
// Create request
IRequestFor<IAccessor> request = new AccessorRequest(target);
// Issue request
IListAccessor<List<int>, int> accessor = service.GetRequired<IRequest, IListAccessor<List<int>, int>>(request);
// Create list
List<int> list = accessor.DefaultConstructor.Read(default);
// Add element
accessor.Add.Write(10, list);
Class libraries:
- Avalanche.Accessor.dll contains base implementations.
- Avalanche.Accessor.Abstractions.dll contains interfaces.
- Avalanche.Accessor.Dto.dll contains accessor builders for .NET type containers.
Other:
- Interoperability: .NET 7 and upwards
The following GlobalUsings.cs can be used to include all extension methods.
global using Avalanche.Accessor;
global using Avalanche.DataType;
global using Avalanche.Identity;
global using Avalanche.Message;
global using Avalanche.Service;
global using Avalanche.Template;
global using Avalanche.Utilities;
global using Avalanche.Utilities.Provider;
global using Avalanche.Writer;