Пример #1
0
        public NfTypeName(string name)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                return;
            }

            _ctorString = name;

            var parseItem = TypeNameParseTree.ParseIl(name);

            if (parseItem == null)
            {
                return;
            }
            _className      = NfReflect.GetTypeNameWithoutNamespace(parseItem.FullName);
            _namespace      = NfReflect.GetNamespaceWithoutTypeName(parseItem.FullName);
            _publicKeyToken = parseItem.PublicKeyTokenValue;
            if (!string.IsNullOrWhiteSpace(parseItem.AssemblyFullName))
            {
                _asmName = new AssemblyName(parseItem.AssemblyFullName);
            }

            if (parseItem.GenericItems == null || !parseItem.GenericItems.Any())
            {
                return;
            }

            foreach (var gi in parseItem.GenericItems)
            {
                _genericArgs.Add(new NfTypeName(gi));
            }
        }
Пример #2
0
        public void TestInvokeParseSimpleName()
        {
            var testInput  = "NoFuture.Util.TypeName";
            var testResult = TypeNameParseTree.InvokeParse(testInput);

            Assert.IsNotNull(testResult);
            Assert.IsTrue(testResult.Any());

            foreach (var tr in testResult)
            {
                PrintTypeItemContent(tr, 0);
            }
        }
Пример #3
0
        public void TestInvokeParseSimpleGeneric()
        {
            var testInput  = "System.Collections.Generic.List`1[SomeSecondDll.MyFirstMiddleClass]";
            var testResult = TypeNameParseTree.InvokeParse(testInput);

            Assert.IsNotNull(testResult);
            Assert.IsTrue(testResult.Any());

            foreach (var tr in testResult)
            {
                PrintTypeItemContent(tr, 0);
            }
        }
Пример #4
0
        public void TestInvokeParse()
        {
            var testInput  = "NeedItInIl.DomainAdapterBase`2[[AThirdDll.Whatever, AThirdDll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Tuple`3[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Collections.Generic.IEnumerable`1[[MoreBinaries.DomainObject+MyInnerType, MoreBinaries, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]";
            var testResult = TypeNameParseTree.InvokeParse(testInput);

            Assert.IsNotNull(testResult);
            Assert.IsTrue(testResult.Any());

            foreach (var tr in testResult)
            {
                PrintTypeItemContent(tr, 0);
            }
        }
Пример #5
0
        public string TransformClrTypeSyntax(string typeToString)
        {
            if (string.IsNullOrWhiteSpace(typeToString))
            {
                return("object");
            }

            var tnpi = TypeNameParseTree.ParseIl(typeToString);
            var bldr = new StringBuilder();

            ConvertToCs(tnpi, bldr);
            return(bldr.ToString().Replace("+", "."));
        }
Пример #6
0
        public void TestInvokeParseAsmNameOnly()
        {
            var testInput =
                "log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL";
            var testResult = TypeNameParseTree.InvokeParse(testInput);

            Assert.IsNotNull(testResult);
            Assert.IsTrue(testResult.Any());

            foreach (var tr in testResult)
            {
                PrintTypeItemContent(tr, 0);
            }
        }
Пример #7
0
 public override byte[] Execute(byte[] arg)
 {
     try
     {
         if (arg == null || arg.Length <= 0)
         {
             throw new ItsDeadJim("No Type Name given to parse.");
         }
         var nm = Encoding.UTF8.GetString(arg);
         MyProgram.PrintToConsole(nm);
         var f = TypeNameParseTree.ParseIl(nm);
         return(JsonEncodedResponse(f));
     }
     catch (Exception ex)
     {
         Console.WriteLine('\n');
         MyProgram.PrintToConsole(ex);
         return(JsonEncodedResponse(new NfTypeNameParseItem {
             Error = ex
         }));
     }
 }