(Optional) Add a Registrations.cs file like the following:
namespace YourNamespace
{
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Reflection;
using Microsoft.Extensions.DependencyInjection;
using Mobilize.Web.DTOMapper;
using Mobilize.WebMAP.Common.Core.ObservableWrapper;
using Mobilize.WebMAP.Common.DCP;
using Mobilize.WebMAP.Common.Messaging;
using Mobilize.WebMAP.Core.ObservableWrapper;
using Mobilize.WebMAP.Messaging;
public static class Registrations
{
public static IModelProjectionService RegisterMappers(this IServiceCollection services)
{
services.AddSingleton((provider) => GetMappers(provider.GetService()));
}
public static void RegisterWrappers(this IServiceCollection services)
{
services.AddSingleton(
(provider) =>
{
var dlls =
new DirectoryInfo(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)).GetFiles("*.dll", SearchOption.AllDirectories);
var wrappers = AssemblyWrapperLoader.GetObservablesWrappersTypes(dlls).ToArray();
var catalog = new ObservableWrapperCatalog(wrappers);
catalog.Register();
return catalog;
});
}
public static IMapperService GetMappers(IObservableStorage storage)
{
var mapperService = new MapperService(storage);
mapperService.SetupDefaultMapper(new DefaultMapper());
mapperService.RegisterMapper(new ButtonMapper());
mapperService.RegisterMapper(new LabelMapper());
mapperService.RegisterMapper(new TextBoxMapper());
mapperService.RegisterMapper(new MessageBoxFormMapper());
mapperService.RegisterMapper(new KeyPressEventArgsMapper());
return mapperService;
}
}
}
That's all. Your application is ready to start using WebMAP.