Пример #1
0
        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 ());
        }
Пример #2
0
        // 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));
        }
Пример #3
0
        // 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));
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        /// <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[]>>();
        }