protected override void OnCreate(Bundle bundle) { base.OnCreate (bundle); global::Xamarin.Forms.Forms.Init (this, bundle); ToastNotificatorImplementation.Init(); EventProvider.ContentResolver = ContentResolver; DependencyService.Register<EventProvider> (); DependencyService.Register<EventNotification> (); DependencyService.Register<Geolocator> (); if (!Resolver.IsSet) { var documents = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); var pathToDatabase = Path.Combine(documents, "xforms.db"); var resolverContainer = new SimpleContainer(); var serializer = new SystemJsonSerializer(); resolverContainer .Register<IJsonSerializer> (t => serializer) .Register<IRestClient>(new JsonRestClient(serializer)) .Register<ISimpleCache> ( t => new SQLiteSimpleCache (new SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid (), new SQLite.Net.SQLiteConnectionString (pathToDatabase, true), t.Resolve<IJsonSerializer> ())); Resolver.SetResolver(resolverContainer.GetResolver()); } LoadApplication (new App ()); }
// System.Text.Json serializer public static T PassThroughSystemJsonSerializer <T>(this T value, ITestOutputHelper?output = null) { var s = new SystemJsonSerializer(SystemJsonOptions).ToTyped <T>(); var json = s.Writer.Write(value); output?.WriteLine($"SystemJsonSerializer: {json}"); return(s.Reader.Read(json)); }
// TypeWritingSerializer public static T PassThroughTypeWritingSerializer <T>(this T value, ITestOutputHelper?output = null) { var sInner = new SystemJsonSerializer(SystemJsonOptions); var s = new TypeDecoratingSerializer(sInner); var json = s.Writer.Write(value, typeof(object)); output?.WriteLine($"TypeWritingUtf16Serializer: {json}"); return((T)s.Reader.Read <object>(json)); }
static TimeSpan RunTest(int numberOfMessages, PipelineStepProfilerStats profilerStats) { using (var adapter = new BuiltinHandlerActivator()) { var network = new InMemNetwork(); Configure.With(adapter) .Logging(l => l.Console(LogLevel.Warn)) .Transport(t => t.UseInMemoryTransport(network, "perftest")) .Options(o => { o.SetNumberOfWorkers(0); o.SetMaxParallelism(1); o.Decorate <IPipeline>(c => new PipelineStepProfiler(c.Get <IPipeline>(), profilerStats)); o.Register <IPipelineInvoker>(c => new DefaultPipelineInvoker(c.Get <IPipeline>())); }) .Start(); var serializer = new SystemJsonSerializer(new SimpleAssemblyQualifiedMessageTypeNameConvention()); var boy = new SomeMessage("hello there!"); for (var counter = 0; counter < numberOfMessages; counter++) { var headers = new Dictionary <string, string> { { Headers.MessageId, Guid.NewGuid().ToString() } }; var message = new Message(headers, boy); var transportMessage = serializer.Serialize(message).Result; var inMemTransportMessage = transportMessage.ToInMemTransportMessage(); network.Deliver("perftest", inMemTransportMessage); } ; var numberOfReceivedMessages = 0; var gotAllMessages = new ManualResetEvent(false); adapter.Handle <SomeMessage>(async m => { Interlocked.Increment(ref numberOfReceivedMessages); if (Volatile.Read(ref numberOfReceivedMessages) == numberOfMessages) { gotAllMessages.Set(); } }); var stopwatch = Stopwatch.StartNew(); adapter.Bus.Advanced.Workers.SetNumberOfWorkers(1); gotAllMessages.WaitOrDie(TimeSpan.FromSeconds(30)); return(stopwatch.Elapsed); } }
/// <summary> /// Initializes a new instance of the <see cref="HybridWebView" /> class. /// </summary> /// <exception cref="Exception">Exception when there is no <see cref="IJsonSerializer"/> implementation registered.</exception> /// <remarks>HybridWebView will use <see cref="IJsonSerializer" /> configured /// with <see cref="Resolver"/> or <see cref="DependencyService"/>. System JSON serializer was removed due to Xamarin /// requirement of having a business license or higher.</remarks> public HybridWebView() { if (!Resolver.IsSet || (this.jsonSerializer = Resolver.Resolve <IJsonSerializer>() ?? DependencyService.Get <IJsonSerializer>()) == null) { #if BUSINESS_LICENSE _jsonSerializer = new SystemJsonSerializer(); #else throw new Exception("HybridWebView requires IJsonSerializer implementation to be registered."); #endif } this.registeredActions = new Dictionary <string, Action <string> >(); this.registeredFunctions = new Dictionary <string, Func <string, object[]> >(); }
/// <summary> /// Initializes a new instance of the <see cref="HybridWebView" /> class. /// </summary> /// <exception cref="Exception">Exception when there is no <see cref="IJsonSerializer"/> implementation registered.</exception> /// <remarks>HybridWebView will use <see cref="IJsonSerializer" /> configured /// with <see cref="Resolver"/> or <see cref="DependencyService"/>. System JSON serializer was removed due to Xamarin /// requirement of having a business license or higher.</remarks> public HybridWebView() { if (!Resolver.IsSet || (this.jsonSerializer = Resolver.Resolve<IJsonSerializer>() ?? DependencyService.Get<IJsonSerializer>()) == null) { #if BUSINESS_LICENSE _jsonSerializer = new SystemJsonSerializer(); #else throw new Exception("HybridWebView requires IJsonSerializer implementation to be registered."); #endif } this.registeredActions = new Dictionary<string, Action<string>>(); this.registeredFunctions = new Dictionary<string, Func<string, object[]>>(); }