diff --git a/DecompilerNuGetDemos.workbook b/DecompilerNuGetDemos.workbook
index b6349e200..e0629fbc7 100644
--- a/DecompilerNuGetDemos.workbook
+++ b/DecompilerNuGetDemos.workbook
@@ -6,7 +6,7 @@ platforms:
- DotNetCore
packages:
- id: ICSharpCode.Decompiler
- version: 5.0.0.4793-preview2
+ version: 5.0.0.5066-preview4
---
Setup: load the references required to work with the decompiler
diff --git a/ICSharpCode.Decompiler.Console/ICSharpCode.Decompiler.Console.csproj b/ICSharpCode.Decompiler.Console/ICSharpCode.Decompiler.Console.csproj
index 1fd74a245..f207dfe1f 100644
--- a/ICSharpCode.Decompiler.Console/ICSharpCode.Decompiler.Console.csproj
+++ b/ICSharpCode.Decompiler.Console/ICSharpCode.Decompiler.Console.csproj
@@ -7,7 +7,7 @@
true
ilspycmd
ilspycmd
- 5.0.0-preview2
+ 5.0.0-preview4
Command-line decompiler using the ILSpy decompilation engine
Copyright 2011-2019 AlphaSierraPapa
https://github.com/icsharpcode/ILSpy/
@@ -28,7 +28,7 @@
-
+
diff --git a/ICSharpCode.Decompiler.PowerShell/ICSharpCode.Decompiler.PowerShell.csproj b/ICSharpCode.Decompiler.PowerShell/ICSharpCode.Decompiler.PowerShell.csproj
index 4dd7f895e..3477b5693 100644
--- a/ICSharpCode.Decompiler.PowerShell/ICSharpCode.Decompiler.PowerShell.csproj
+++ b/ICSharpCode.Decompiler.PowerShell/ICSharpCode.Decompiler.PowerShell.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/ICSharpCode.Decompiler.Tests/CorrectnessTestRunner.cs b/ICSharpCode.Decompiler.Tests/CorrectnessTestRunner.cs
index e5f200486..6d75516da 100644
--- a/ICSharpCode.Decompiler.Tests/CorrectnessTestRunner.cs
+++ b/ICSharpCode.Decompiler.Tests/CorrectnessTestRunner.cs
@@ -196,12 +196,6 @@ namespace ICSharpCode.Decompiler.Tests
RunCS(options: options);
}
- [Test]
- public void RefLocalsAndReturns([ValueSource("roslynOnlyOptions")] CompilerOptions options)
- {
- RunCS(options: options);
- }
-
[Test]
public void BitNot([Values(false, true)] bool force32Bit)
{
@@ -295,12 +289,6 @@ namespace ICSharpCode.Decompiler.Tests
RunCS(options: options);
}
- [Test]
- public void LocalFunctions([ValueSource(nameof(roslynOnlyOptions))] CompilerOptions options)
- {
- RunCS(options: options);
- }
-
void RunCS([CallerMemberName] string testName = null, CompilerOptions options = CompilerOptions.UseDebug)
{
string testFileName = testName + ".cs";
diff --git a/ICSharpCode.Decompiler.Tests/Helpers/RemoveCompilerAttribute.cs b/ICSharpCode.Decompiler.Tests/Helpers/RemoveCompilerAttribute.cs
index 2deaaab97..214dda115 100644
--- a/ICSharpCode.Decompiler.Tests/Helpers/RemoveCompilerAttribute.cs
+++ b/ICSharpCode.Decompiler.Tests/Helpers/RemoveCompilerAttribute.cs
@@ -40,6 +40,7 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
"System.Runtime.CompilerServices.IsByRefLikeAttribute",
"System.Runtime.CompilerServices.IsUnmanagedAttribute",
"System.Runtime.CompilerServices.NullableAttribute",
+ "System.Runtime.CompilerServices.NullableContextAttribute",
"Microsoft.CodeAnalysis.EmbeddedAttribute",
};
diff --git a/ICSharpCode.Decompiler.Tests/Helpers/Tester.VB.cs b/ICSharpCode.Decompiler.Tests/Helpers/Tester.VB.cs
index e09cecda9..55f0f5a3e 100644
--- a/ICSharpCode.Decompiler.Tests/Helpers/Tester.VB.cs
+++ b/ICSharpCode.Decompiler.Tests/Helpers/Tester.VB.cs
@@ -56,10 +56,10 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
var provider = new VBCodeProvider(new Dictionary { { "CompilerVersion", "v4.0" } });
CompilerParameters options = new CompilerParameters();
options.GenerateExecutable = !flags.HasFlag(CompilerOptions.Library);
- options.CompilerOptions = "/o" + (flags.HasFlag(CompilerOptions.Optimize) ? "+" : "-");
+ options.CompilerOptions = "/optimize" + (flags.HasFlag(CompilerOptions.Optimize) ? "+" : "-");
options.CompilerOptions += (flags.HasFlag(CompilerOptions.UseDebug) ? " /debug" : "");
options.CompilerOptions += (flags.HasFlag(CompilerOptions.Force32Bit) ? " /platform:anycpu32bitpreferred" : "");
- options.CompilerOptions += "/optioninfer+ /optionexplicit+";
+ options.CompilerOptions += " /optioninfer+ /optionexplicit+";
if (preprocessorSymbols.Count > 0) {
options.CompilerOptions += " /d:" + string.Join(",", preprocessorSymbols.Select(p => $"{p.Key}={p.Value}"));
}
diff --git a/ICSharpCode.Decompiler.Tests/Helpers/Tester.cs b/ICSharpCode.Decompiler.Tests/Helpers/Tester.cs
index dfe0d7cb2..1ad55293d 100644
--- a/ICSharpCode.Decompiler.Tests/Helpers/Tester.cs
+++ b/ICSharpCode.Decompiler.Tests/Helpers/Tester.cs
@@ -534,5 +534,27 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
// If the last try still fails, don't catch the exception
action();
}
+
+ public static void SignAssembly(string assemblyPath, string keyFilePath)
+ {
+ string snPath = SdkUtility.GetSdkPath("sn.exe");
+
+ ProcessStartInfo info = new ProcessStartInfo(snPath);
+ info.Arguments = $"-R \"{assemblyPath}\" \"{keyFilePath}\"";
+ info.RedirectStandardError = true;
+ info.RedirectStandardOutput = true;
+ info.UseShellExecute = false;
+
+ Process process = Process.Start(info);
+
+ var outputTask = process.StandardOutput.ReadToEndAsync();
+ var errorTask = process.StandardError.ReadToEndAsync();
+
+ Task.WaitAll(outputTask, errorTask);
+ process.WaitForExit();
+
+ Console.WriteLine("output: " + outputTask.Result);
+ Console.WriteLine("errors: " + errorTask.Result);
+ }
}
}
diff --git a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
index e3e43be69..fe066f25f 100644
--- a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
+++ b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
@@ -7,7 +7,7 @@
True
- 1701;1702;1705,67,169,1058,728,1720,649,168,251
+ 1701;1702;1705,67,169,1058,728,1720,649,168,251,660,661,675
False
@@ -42,13 +42,13 @@
-
-
+
+
-
-
+
+
@@ -61,11 +61,17 @@
+
+
+
+
+
+
@@ -74,6 +80,15 @@
+
+
+
+
+
+
+
+
+
@@ -83,12 +98,12 @@
-
-
+
+
@@ -230,6 +245,7 @@
+
diff --git a/ICSharpCode.Decompiler.Tests/ILPrettyTestRunner.cs b/ICSharpCode.Decompiler.Tests/ILPrettyTestRunner.cs
index bfdbf2156..72e16db69 100644
--- a/ICSharpCode.Decompiler.Tests/ILPrettyTestRunner.cs
+++ b/ICSharpCode.Decompiler.Tests/ILPrettyTestRunner.cs
@@ -58,6 +58,12 @@ namespace ICSharpCode.Decompiler.Tests
Run();
}
+ [Test]
+ public void Issue684()
+ {
+ Run();
+ }
+
[Test]
public void Issue959()
{
@@ -91,13 +97,19 @@ namespace ICSharpCode.Decompiler.Tests
[Test]
public void FSharpUsing_Debug()
{
- Run(settings: new DecompilerSettings { RemoveDeadCode = true });
+ Run(settings: new DecompilerSettings { RemoveDeadStores = true });
}
[Test]
public void FSharpUsing_Release()
{
- Run(settings: new DecompilerSettings { RemoveDeadCode = true });
+ Run(settings: new DecompilerSettings { RemoveDeadStores = true });
+ }
+
+ [Test]
+ public void DirectCallToExplicitInterfaceImpl()
+ {
+ Run();
}
[Test]
@@ -170,14 +182,14 @@ namespace ICSharpCode.Decompiler.Tests
public void FSharpLoops_Debug()
{
CopyFSharpCoreDll();
- Run(settings: new DecompilerSettings { RemoveDeadCode = true });
+ Run(settings: new DecompilerSettings { RemoveDeadStores = true });
}
[Test]
public void FSharpLoops_Release()
{
CopyFSharpCoreDll();
- Run(settings: new DecompilerSettings { RemoveDeadCode = true });
+ Run(settings: new DecompilerSettings { RemoveDeadStores = true });
}
void Run([CallerMemberName] string testName = null, DecompilerSettings settings = null)
diff --git a/ICSharpCode.Decompiler.Tests/PdbGenerationTestRunner.cs b/ICSharpCode.Decompiler.Tests/PdbGenerationTestRunner.cs
index c13ee99a0..78de11172 100644
--- a/ICSharpCode.Decompiler.Tests/PdbGenerationTestRunner.cs
+++ b/ICSharpCode.Decompiler.Tests/PdbGenerationTestRunner.cs
@@ -18,7 +18,7 @@ using NUnit.Framework;
namespace ICSharpCode.Decompiler.Tests
{
- [TestFixture]
+ [TestFixture, Parallelizable(ParallelScope.All)]
public class PdbGenerationTestRunner
{
static readonly string TestCasePath = Tester.TestCasePath + "/PdbGen";
diff --git a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs
index 1e15135f1..401c23221 100644
--- a/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs
+++ b/ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs
@@ -114,7 +114,7 @@ namespace ICSharpCode.Decompiler.Tests
RunForLibrary(cscOptions: cscOptions, decompilerSettings: new DecompilerSettings {
NullPropagation = false,
// legacy csc generates a dead store in debug builds
- RemoveDeadCode = (cscOptions == CompilerOptions.None)
+ RemoveDeadStores = (cscOptions == CompilerOptions.None)
});
}
@@ -123,7 +123,7 @@ namespace ICSharpCode.Decompiler.Tests
{
RunForLibrary(cscOptions: cscOptions, decompilerSettings: new DecompilerSettings {
// legacy csc generates a dead store in debug builds
- RemoveDeadCode = (cscOptions == CompilerOptions.None)
+ RemoveDeadStores = (cscOptions == CompilerOptions.None)
});
}
@@ -134,7 +134,7 @@ namespace ICSharpCode.Decompiler.Tests
}
[Test]
- public void DelegateConstruction([ValueSource(nameof(defaultOptions))] CompilerOptions cscOptions)
+ public void DelegateConstruction([ValueSource(nameof(defaultOptionsWithMcs))] CompilerOptions cscOptions)
{
RunForLibrary(cscOptions: cscOptions);
}
@@ -180,10 +180,16 @@ namespace ICSharpCode.Decompiler.Tests
{
RunForLibrary(cscOptions: cscOptions, decompilerSettings: new DecompilerSettings {
// legacy csc generates a dead store in debug builds
- RemoveDeadCode = (cscOptions == CompilerOptions.None)
+ RemoveDeadStores = (cscOptions == CompilerOptions.None)
});
}
+ [Test]
+ public void LocalFunctions([ValueSource(nameof(roslynOnlyOptions))] CompilerOptions cscOptions)
+ {
+ RunForLibrary(cscOptions: cscOptions);
+ }
+
[Test]
public void PropertiesAndEvents([ValueSource(nameof(defaultOptions))] CompilerOptions cscOptions)
{
@@ -233,6 +239,12 @@ namespace ICSharpCode.Decompiler.Tests
RunForLibrary(cscOptions: cscOptions, asmOptions: AssemblerOptions.UseOwnDisassembler);
}
+ [Test]
+ public void OutVariables([ValueSource(nameof(roslynOnlyOptions))] CompilerOptions cscOptions)
+ {
+ RunForLibrary(cscOptions: cscOptions);
+ }
+
[Test]
public void InitializerTests([ValueSource(nameof(defaultOptions))] CompilerOptions cscOptions)
{
@@ -317,6 +329,12 @@ namespace ICSharpCode.Decompiler.Tests
RunForLibrary(cscOptions: cscOptions);
}
+ [Test]
+ public void ThrowExpressions([ValueSource(nameof(roslynOnlyOptions))] CompilerOptions cscOptions)
+ {
+ RunForLibrary(cscOptions: cscOptions);
+ }
+
[Test]
public void WellKnownConstants([ValueSource(nameof(defaultOptions))] CompilerOptions cscOptions)
{
@@ -420,7 +438,13 @@ namespace ICSharpCode.Decompiler.Tests
}
[Test]
- public void YieldReturn([ValueSource(nameof(defaultOptions))] CompilerOptions cscOptions)
+ public void YieldReturn([ValueSource(nameof(defaultOptionsWithMcs))] CompilerOptions cscOptions)
+ {
+ RunForLibrary(cscOptions: cscOptions);
+ }
+
+ [Test]
+ public void UserDefinedConversions([ValueSource(nameof(defaultOptions))] CompilerOptions cscOptions)
{
RunForLibrary(cscOptions: cscOptions);
}
diff --git a/ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs b/ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs
index dea1e49f5..210a45d13 100644
--- a/ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs
+++ b/ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs
@@ -69,11 +69,7 @@ namespace ICSharpCode.Decompiler.Tests
[Test]
public void ICSharpCode_Decompiler()
{
- try {
- RunWithTest("ICSharpCode.Decompiler", "ICSharpCode.Decompiler.dll", "ICSharpCode.Decompiler.Tests.exe");
- } catch (CompilationFailedException) {
- Assert.Ignore("C# 7 local functions not yet supported.");
- }
+ RunWithTest("ICSharpCode.Decompiler", "ICSharpCode.Decompiler.dll", "ICSharpCode.Decompiler.Tests.exe");
}
[Test]
@@ -106,11 +102,11 @@ namespace ICSharpCode.Decompiler.Tests
RunWithOutput("Random Tests\\TestCases", "TestCase-1.exe");
}
- void RunWithTest(string dir, string fileToRoundtrip, string fileToTest)
+ void RunWithTest(string dir, string fileToRoundtrip, string fileToTest, string keyFile = null)
{
- RunInternal(dir, fileToRoundtrip, outputDir => RunTest(outputDir, fileToTest));
+ RunInternal(dir, fileToRoundtrip, outputDir => RunTest(outputDir, fileToTest), keyFile);
}
-
+
void RunWithOutput(string dir, string fileToRoundtrip)
{
string inputDir = Path.Combine(TestDir, dir);
@@ -118,7 +114,7 @@ namespace ICSharpCode.Decompiler.Tests
outputDir => Tester.RunAndCompareOutput(fileToRoundtrip, Path.Combine(inputDir, fileToRoundtrip), Path.Combine(outputDir, fileToRoundtrip)));
}
- void RunInternal(string dir, string fileToRoundtrip, Action testAction)
+ void RunInternal(string dir, string fileToRoundtrip, Action testAction, string snkFilePath = null)
{
if (!Directory.Exists(TestDir)) {
Assert.Ignore($"Assembly-roundtrip test ignored: test directory '{TestDir}' needs to be checked out separately." + Environment.NewLine +
@@ -156,6 +152,9 @@ namespace ICSharpCode.Decompiler.Tests
decompiler.Settings = new DecompilerSettings(LanguageVersion.CSharp7_3);
// use a fixed GUID so that we can diff the output between different ILSpy runs without spurious changes
decompiler.ProjectGuid = Guid.Parse("{127C83E4-4587-4CF9-ADCA-799875F3DFE6}");
+ if (snkFilePath != null) {
+ decompiler.StrongNameKeyFile = Path.Combine(inputDir, snkFilePath);
+ }
decompiler.DecompileProject(module, decompiledDir);
Console.WriteLine($"Decompiled {fileToRoundtrip} in {w.Elapsed.TotalSeconds:f2}");
projectFile = Path.Combine(decompiledDir, module.Name + ".csproj");
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/LocalFunctions.cs b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/LocalFunctions.cs
deleted file mode 100644
index f05d95f27..000000000
--- a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/LocalFunctions.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace LocalFunctions
-{
- class LocalFunctions
- {
- int field;
-
- public static void Main(string[] args)
- {
- StaticContextNoCapture(10);
- StaticContextSimpleCapture(10);
- StaticContextCaptureInForLoop(10);
- var inst = new LocalFunctions() { field = 10 };
- inst.ContextNoCapture();
- inst.ContextSimpleCapture();
- inst.ContextCaptureInForLoop();
- }
-
- public static void StaticContextNoCapture(int length)
- {
- for (int i = 0; i < length; i++) {
- LocalWrite("Hello " + i);
- }
-
- void LocalWrite(string s) => Console.WriteLine(s);
- }
-
- public static void StaticContextSimpleCapture(int length)
- {
- for (int i = 0; i < length; i++) {
- LocalWrite();
- }
-
- void LocalWrite() => Console.WriteLine("Hello " + length);
- }
-
- public static void StaticContextCaptureInForLoop(int length)
- {
- for (int i = 0; i < length; i++) {
- void LocalWrite() => Console.WriteLine("Hello " + i + "/" + length);
- LocalWrite();
- }
- }
-
- public void ContextNoCapture()
- {
- for (int i = 0; i < field; i++) {
- LocalWrite("Hello " + i);
- }
-
- void LocalWrite(string s) => Console.WriteLine(s);
- }
-
- public void ContextSimpleCapture()
- {
- for (int i = 0; i < field; i++) {
- LocalWrite();
- }
-
- void LocalWrite() => Console.WriteLine("Hello " + field);
- }
-
- public void ContextCaptureInForLoop()
- {
- for (int i = 0; i < field; i++) {
- void LocalWrite() => Console.WriteLine("Hello " + i + "/" + field);
- LocalWrite();
- }
- }
- }
-}
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/RefLocalsAndReturns.cs b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/RefLocalsAndReturns.cs
deleted file mode 100644
index 59f846290..000000000
--- a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/RefLocalsAndReturns.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness
-{
- class RefLocalsAndReturns
- {
- static int[] numbers = { 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023 };
- static string[] strings = { "Hello", "World" };
- static string NullString = "";
- static int DefaultInt = 0;
-
- public delegate ref TReturn RefFunc(T1 param1);
-
- public static TReturn Invoker(RefFunc action, T1 value)
- {
- return action(value);
- }
-
- public static ref int FindNumber(int target)
- {
- for (int ctr = 0; ctr < numbers.Length; ctr++) {
- if (numbers[ctr] >= target)
- return ref numbers[ctr];
- }
- return ref numbers[0];
- }
-
- public static ref int LastNumber()
- {
- return ref numbers[numbers.Length - 1];
- }
-
- public static ref int ElementAtOrDefault(int index)
- {
- return ref index < 0 || index >= numbers.Length ? ref DefaultInt : ref numbers[index];
- }
-
- public static ref int LastOrDefault()
- {
- return ref numbers.Length > 0 ? ref numbers[numbers.Length - 1] : ref DefaultInt;
- }
-
- public static void DoubleNumber(ref int num)
- {
- Console.WriteLine("old: " + num);
- num *= 2;
- Console.WriteLine("new: " + num);
- }
-
- public static ref string GetOrSetString(int index)
- {
- if (index < 0 || index >= strings.Length)
- return ref NullString;
- return ref strings[index];
- }
-
- public static void Main(string[] args)
- {
- DoubleNumber(ref FindNumber(32));
- Console.WriteLine(string.Join(", ", numbers));
- DoubleNumber(ref LastNumber());
- Console.WriteLine(string.Join(", ", numbers));
- Console.WriteLine(GetOrSetString(0));
- GetOrSetString(0) = "Goodbye";
- Console.WriteLine(string.Join(" ", strings));
- GetOrSetString(5) = "Here I mutated the null value!?";
- Console.WriteLine(GetOrSetString(-5));
-
- Console.WriteLine(Invoker(x => ref numbers[x], 0));
- Console.WriteLine(LastOrDefault());
- LastOrDefault() = 10000;
- Console.WriteLine(ElementAtOrDefault(-5));
- }
- }
-}
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/TrickyTypes.cs b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/TrickyTypes.cs
index 83b609b2f..437c37e54 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/TrickyTypes.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/TrickyTypes.cs
@@ -26,6 +26,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness
{
InterestingConstants();
TruncatedComp();
+ StringConcat();
}
static void Print(T val)
@@ -92,5 +93,13 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness
Print(val1 <= val2);
Print((int)val1 <= val2);
}
+
+ static void StringConcat()
+ {
+ // Some string.Concat()-cases that cannot be replaced using operator+
+ Print(string.Concat("String concat:"));
+ Print(string.Concat(1, 2));
+ Print(string.Concat(1, 2, "str"));
+ }
}
}
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/DirectCallToExplicitInterfaceImpl.cs b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/DirectCallToExplicitInterfaceImpl.cs
new file mode 100644
index 000000000..7e8fc4ee3
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/DirectCallToExplicitInterfaceImpl.cs
@@ -0,0 +1,14 @@
+using System;
+
+public sealed class TestClass : IDisposable
+{
+ void IDisposable.Dispose()
+ {
+ }
+
+ public void Test(TestClass other)
+ {
+ ((IDisposable)this).Dispose();
+ ((IDisposable)other).Dispose();
+ }
+}
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/DirectCallToExplicitInterfaceImpl.il b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/DirectCallToExplicitInterfaceImpl.il
new file mode 100644
index 000000000..4a9a59309
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/DirectCallToExplicitInterfaceImpl.il
@@ -0,0 +1,36 @@
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 4:0:0:0
+}
+.assembly DirectCallToExplicitInterfaceImpl
+{
+ .ver 1:0:0:0
+}
+.module DirectCallToExplicitInterfaceImpl.exe
+
+.class public auto ansi sealed TestClass
+ extends [mscorlib]System.Object
+ implements [mscorlib]System.IDisposable
+{
+ // Methods
+
+ .method private final hidebysig newslot virtual
+ instance void System.IDisposable.Dispose () cil managed
+ {
+ .override method instance void [mscorlib]System.IDisposable::Dispose()
+ ret
+ }
+
+ .method public hidebysig void Test (class TestClass other) cil managed
+ {
+ ldarg.0
+ call instance void TestClass::System.IDisposable.Dispose()
+
+ ldarg.1
+ call instance void TestClass::System.IDisposable.Dispose()
+
+ ret
+ }
+
+} // end of class TestClass
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1047.cs b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1047.cs
index f5d32e786..93f375a02 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1047.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue1047.cs
@@ -6,12 +6,8 @@
private void ProblemMethod()
{
- IL_0000:
while (!dummy) {
}
- return;
- IL_0014:
- goto IL_0000;
}
}
}
\ No newline at end of file
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue684.cs b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue684.cs
new file mode 100644
index 000000000..5ec516778
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue684.cs
@@ -0,0 +1,39 @@
+using System;
+
+public static class Issue684
+{
+ static int Main(string[] A_0)
+ {
+ int[] array = new int[1000];
+ int num = int.Parse(Console.ReadLine());
+ // Point of this test was to ensure the stack slot here uses an appropriate type,
+ // (bool instead of int). Unfortunately our type fixup runs too late to affect variable names.
+ bool num2 = num >= 1000;
+ if (!num2) {
+ num2 = (num < 2);
+ }
+ if (num2) {
+ Console.WriteLine(-1);
+ } else {
+ int i = 2;
+ for (int num3 = 2; num3 <= num; num3 = i) {
+ Console.WriteLine(num3);
+ for (; i <= num; i += num3) {
+ int num4 = array[i] = 1;
+ }
+ i = num3;
+ while (true) {
+ bool num5 = i <= num;
+ if (num5) {
+ num5 = (array[i] != 0);
+ }
+ if (!num5) {
+ break;
+ }
+ i++;
+ }
+ }
+ }
+ return 0;
+ }
+}
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue684.il b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue684.il
new file mode 100644
index 000000000..55417b20b
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/ILPretty/Issue684.il
@@ -0,0 +1,133 @@
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 4:0:0:0
+}
+.assembly Issue684
+{
+ .ver 1:0:0:0
+}
+.module Issue684.exe
+
+.class public auto ansi abstract sealed Issue684
+ extends [mscorlib]System.Object
+{
+ // Methods
+
+ .method static privatescope
+ int32 Main$PST06000001 (
+ string[] ''
+ ) cil managed
+ {
+ // Method begins at RVA 0x2050
+ // Code size 196 (0xc4)
+ .maxstack 11
+ .entrypoint
+ .locals init (
+ [0] int32,
+ [1] int32,
+ [2] int32,
+ [3] int32[],
+ [4] int32
+ )
+
+ IL_0000: ldc.i4 1000
+ IL_0005: newarr [mscorlib]System.Int32
+ IL_000a: stloc.3
+ IL_000b: call string [mscorlib]System.Console::ReadLine()
+ IL_0010: call int32 [mscorlib]System.Int32::Parse(string)
+ IL_0015: stloc.2
+ IL_0016: ldloc.2
+ IL_0017: ldc.i4 1000
+ IL_001c: clt
+ IL_001e: ldc.i4.0
+ IL_001f: ceq
+ IL_0021: dup
+ IL_0022: brtrue IL_0030
+
+ IL_0027: pop
+ IL_0028: ldloc.2
+ IL_0029: ldc.i4 2
+ IL_002e: clt
+
+ IL_0030: brfalse IL_0045
+
+ IL_0035: ldc.i4 1
+ IL_003a: neg
+ IL_003b: call void [mscorlib]System.Console::WriteLine(int32)
+ IL_0040: br IL_00c2
+
+ IL_0045: ldc.i4 2
+ IL_004a: stloc.0
+ IL_004b: ldc.i4 2
+ IL_0050: stloc.1
+ // loop start (head: IL_0051)
+ IL_0051: ldloc.1
+ IL_0052: ldloc.2
+ IL_0053: cgt
+ IL_0055: ldc.i4.0
+ IL_0056: ceq
+ IL_0058: brfalse IL_00c2
+
+ IL_005d: ldloc.1
+ IL_005e: call void [mscorlib]System.Console::WriteLine(int32)
+ // loop start (head: IL_0063)
+ IL_0063: ldloc.0
+ IL_0064: ldloc.2
+ IL_0065: cgt
+ IL_0067: ldc.i4.0
+ IL_0068: ceq
+ IL_006a: brfalse IL_0088
+
+ IL_006f: ldc.i4 1
+ IL_0074: stloc.s 4
+ IL_0076: ldloc.3
+ IL_0077: ldloc.0
+ IL_0078: ldloc.s 4
+ IL_007a: stelem.any [mscorlib]System.Int32
+ IL_007f: ldloc.0
+ IL_0080: ldloc.1
+ IL_0081: add
+ IL_0082: stloc.0
+ IL_0083: br IL_0063
+ // end loop
+
+ IL_0088: ldloc.1
+ IL_0089: stloc.0
+ // loop start (head: IL_008a)
+ IL_008a: ldloc.0
+ IL_008b: ldloc.2
+ IL_008c: cgt
+ IL_008e: ldc.i4.0
+ IL_008f: ceq
+ IL_0091: dup
+ IL_0092: brfalse IL_00a9
+
+ IL_0097: pop
+ IL_0098: ldloc.3
+ IL_0099: ldloc.0
+ IL_009a: ldelem.any [mscorlib]System.Int32
+ IL_009f: ldc.i4 0
+ IL_00a4: ceq
+ IL_00a6: ldc.i4.0
+ IL_00a7: ceq
+
+ IL_00a9: brfalse IL_00bb
+
+ IL_00ae: ldloc.0
+ IL_00af: ldc.i4 1
+ IL_00b4: add
+ IL_00b5: stloc.0
+ IL_00b6: br IL_008a
+ // end loop
+
+ IL_00bb: ldloc.0
+ IL_00bc: stloc.1
+ IL_00bd: br IL_0051
+ // end loop
+
+ IL_00c2: ldc.i4.0
+ IL_00c3: ret
+ } // end of method Program::Main
+
+} // end of class Issue684
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Async.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Async.cs
index 14e6a8858..9f6b5c58a 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Async.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Async.cs
@@ -18,6 +18,7 @@
#pragma warning disable 1998
using System;
+using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
@@ -25,6 +26,8 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
public class Async
{
+ private int memberField;
+
public async void SimpleVoidMethod()
{
Console.WriteLine("Before");
@@ -71,6 +74,16 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
Console.WriteLine("No Await");
}
+ public async Task CapturingThis()
+ {
+ await Task.Delay(memberField);
+ }
+
+ public async Task CapturingThisWithoutAwait()
+ {
+ Console.WriteLine(memberField);
+ }
+
public async Task SimpleBoolTaskMethod()
{
Console.WriteLine("Before");
@@ -126,6 +139,46 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
}
}
#endif
+
+ public static async Task GetIntegerSumAsync(IEnumerable items)
+ {
+ await Task.Delay(100);
+ int num = 0;
+ foreach (int item in items) {
+ num += item;
+ }
+ return num;
+ }
+
+ public static Func> AsyncLambda()
+ {
+ return async () => await GetIntegerSumAsync(new int[3] {
+ 1,
+ 2,
+ 3
+ });
+ }
+
+ public static Func> AsyncDelegate()
+ {
+ return async delegate {
+ await Task.Delay(10);
+ return 2;
+ };
+ }
+
+#if CS70
+ public static async Task AsyncLocalFunctions()
+ {
+ return await Nested(1) + await Nested(2);
+
+ async Task Nested(int i)
+ {
+ await Task.Delay(i);
+ return i;
+ }
+ }
+#endif
}
public struct HopToThreadPoolAwaitable : INotifyCompletion
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CompoundAssignmentTest.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CompoundAssignmentTest.cs
index 5244e21c0..109831418 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CompoundAssignmentTest.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CompoundAssignmentTest.cs
@@ -4577,12 +4577,11 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
new CustomClass().StringProp += 1;
}
-#if false
public uint PreIncrementIndexer(string name)
{
return ++M()[name];
}
-#endif
+
public int PreIncrementByRef(ref int i)
{
return ++i;
@@ -4593,6 +4592,11 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
return ++(*GetPointer());
}
+ public unsafe int PreIncrementOfPointer(int* ptr)
+ {
+ return *(++ptr);
+ }
+
public int PreIncrement2DArray()
{
return ++Array()[1, 2];
@@ -4627,12 +4631,17 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
return array[Environment.TickCount] *= 10;
}
-#if false
+
public uint CompoundAssignIndexer(string name)
{
- return M()[name] -= 2;
+ return M()[name] -= 2u;
}
-#endif
+
+ public uint CompoundAssignIndexerComplexIndex(string name)
+ {
+ return M()[ToString()] -= 2u;
+ }
+
public int CompoundAssignIncrement2DArray()
{
return Array()[1, 2] %= 10;
@@ -4643,6 +4652,11 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
return i <<= 2;
}
+ public unsafe int* CompoundAssignOfPointer(int* ptr)
+ {
+ return ptr += 10;
+ }
+
public unsafe double CompoundAssignByPointer(double* ptr)
{
return *ptr /= 1.5;
@@ -4669,17 +4683,19 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
return array[pos]--;
}
-#if false
+
public uint PostIncrementIndexer(string name)
{
return M()[name]++;
}
+#if false
public unsafe int PostIncrementOfPointer(int* ptr)
{
return *(ptr++);
}
#endif
+
public int PostDecrementInstanceField()
{
return M().Field--;
@@ -4704,5 +4720,50 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
return (*GetPointer())++;
}
+
+ public void Issue1552Pre(CustomStruct a, CustomStruct b)
+ {
+ CustomStruct customStruct = a + b;
+ Console.WriteLine(++customStruct);
+ }
+
+ public void Issue1552Stmt(CustomStruct a, CustomStruct b)
+ {
+ CustomStruct customStruct = a + b;
+ ++customStruct;
+ }
+
+ public void Issue1552StmtUseLater(CustomStruct a, CustomStruct b)
+ {
+ CustomStruct lhs = a + b;
+ ++lhs;
+ Console.WriteLine();
+ Console.WriteLine(lhs * b);
+ }
+
+ public void Issue1552Decimal(decimal a)
+ {
+ // Legacy csc compiles this using op_Increment,
+ // ensure we don't misdetect this as an invalid pre-increment "++(a * 10m)"
+ Console.WriteLine(a * 10m + 1m);
+ }
+
+#if !(ROSLYN && OPT)
+ // Roslyn opt no longer has a detectable post-increment pattern
+ // due to optimizing out some of the stores.
+ // Our emitted code is valid but has some additional temporaries.
+ public void Issue1552Post(CustomStruct a, CustomStruct b)
+ {
+ CustomStruct customStruct = a + b;
+ Console.WriteLine(customStruct++);
+ }
+
+ public void Issue1552StmtTwice(CustomStruct a, CustomStruct b)
+ {
+ CustomStruct customStruct = a + b;
+ ++customStruct;
+ ++customStruct;
+ }
+#endif
}
}
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstantsTests.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstantsTests.cs
index f2cb636dd..83d9eb8bf 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstantsTests.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ConstantsTests.cs
@@ -35,5 +35,20 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
private void Test(bool expr)
{
}
+
+ private void Test(decimal expr)
+ {
+ }
+
+ public void Decimal()
+ {
+ // Roslyn and legacy csc both normalize the decimal constant references,
+ // but to a different representation (ctor call vs. field use)
+ Test(0m);
+ Test(1m);
+ Test(-1m);
+ Test(decimal.MinValue);
+ Test(decimal.MaxValue);
+ }
}
}
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.cs
index 1a748024d..4f3ed04a4 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.cs
@@ -146,6 +146,64 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
}
}
+
+ public interface IM3
+ {
+ void M3();
+ }
+ public class BaseClass : IM3
+ {
+ protected virtual void M1()
+ {
+ }
+ protected virtual void M2()
+ {
+ }
+ public virtual void M3()
+ {
+ }
+ }
+ public class SubClass : BaseClass
+ {
+ protected override void M2()
+ {
+ }
+ public new void M3()
+ {
+ }
+
+ public void Test()
+ {
+ Noop("M1.base", base.M1);
+ Noop("M1", M1);
+ Noop("M2.base", base.M2);
+ Noop("M2", M2);
+ Noop("M3.base", base.M3);
+ Noop("M3.base_virt", ((BaseClass)this).M3);
+ Noop("M3.base_interface", ((IM3)this).M3);
+#if CS70
+ Noop("M3", this.M3);
+ Noop("M3", M3);
+
+ void M3()
+ {
+
+ }
+#else
+ Noop("M3", M3);
+#endif
+ }
+ public void Test2()
+ {
+ Noop("M3.new", new BaseClass().M3);
+ Noop("M3.new", new SubClass().M3);
+ }
+
+ private void Noop(string name, Action _)
+ {
+ }
+ }
+
public static Func test0 = (string a, string b) => string.IsNullOrEmpty(a) || string.IsNullOrEmpty(b);
public static Func test1 = (string a, string b) => string.IsNullOrEmpty(a) || !string.IsNullOrEmpty(b);
public static Func test2 = (string a, string b) => !string.IsNullOrEmpty(a) || string.IsNullOrEmpty(b);
@@ -159,6 +217,17 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
}
+ public static Predicate And(this Predicate filter1, Predicate filter2)
+ {
+ if (filter1 == null) {
+ return filter2;
+ }
+ if (filter2 == null) {
+ return filter1;
+ }
+ return (T m) => filter1(m) && filter2(m);
+ }
+
public static Action ExtensionMethodUnbound()
{
return Test;
@@ -174,6 +243,11 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
return ((string)null).Test;
}
+ public static Predicate NoExtensionMethodOnLambda()
+ {
+ return And((int x) => x >= 0, (int x) => x <= 100);
+ }
+
public static object StaticMethod()
{
return new Func(ExtensionMethodBound);
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.cs
index f328fc634..3f6ab5112 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/DynamicTests.cs
@@ -64,6 +64,34 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
}
+ private static void CallWithOut(out dynamic d)
+ {
+ d = null;
+ }
+
+#if CS70
+ private static void CallWithIn(in dynamic d)
+ {
+ }
+#endif
+
+ private static void CallWithRef(ref dynamic d)
+ {
+ }
+
+ private static void RefCallSiteTests()
+ {
+#if CS70
+ CallWithOut(out dynamic d);
+ CallWithIn(in d);
+#else
+ dynamic d;
+ CallWithOut(out d);
+#endif
+ CallWithRef(ref d);
+ d.SomeCall();
+ }
+
private static void InvokeConstructor()
{
DynamicTests dynamicTests = new DynamicTests();
@@ -382,6 +410,16 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
}
}
+ private static bool ConstantTarget(dynamic a)
+ {
+ return true.Equals(a);
+ }
+
+ private static IntPtr NewIntPtr(dynamic a)
+ {
+ return new IntPtr(a);
+ }
+
private static dynamic GetDynamic(int i)
{
return null;
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExceptionHandling.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExceptionHandling.cs
index 06b071f85..1472eda8f 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExceptionHandling.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExceptionHandling.cs
@@ -243,7 +243,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
Console.WriteLine("0");
}
-
+
Console.WriteLine("End Try");
} catch {
@@ -259,7 +259,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
Console.WriteLine("Catch2");
}
return B(10) && B(11);
- } catch {
+ } catch {
Console.WriteLine("Catch");
} finally {
Console.WriteLine("Finally");
@@ -281,5 +281,75 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
}
}
}
+
+ public void ReassignExceptionVar()
+ {
+ try {
+ Console.WriteLine("ReassignExceptionVar");
+ } catch (Exception innerException) {
+ if (innerException.InnerException != null) {
+ innerException = innerException.InnerException;
+ }
+ Console.WriteLine(innerException);
+ }
+ }
+
+ public int UseExceptionVarOutsideCatch()
+ {
+ Exception ex2;
+ try {
+ return 1;
+ } catch (Exception ex) {
+ ex2 = ex;
+ }
+ Console.WriteLine(ex2 != null);
+ return 2;
+ }
+
+ public void GenericException(int input) where TException : Exception
+ {
+ try {
+ Console.WriteLine(input);
+ } catch (TException val) {
+ Console.WriteLine(val.Message);
+ throw;
+ }
+ }
+
+ public void GenericException2() where T : Exception
+ {
+ try {
+ Console.WriteLine("CatchT");
+#if ROSLYN
+ } catch (T val) {
+ Console.WriteLine("{0} {1}", val, val.ToString());
+ }
+#else
+ } catch (T arg) {
+ Console.WriteLine("{0} {1}", arg, arg.ToString());
+ }
+#endif
+ }
+
+#if CS60
+ public void GenericExceptionWithCondition(int input) where TException : Exception
+ {
+ try {
+ Console.WriteLine(input);
+ } catch (TException val) when (val.Message.Contains("Test")) {
+ Console.WriteLine(val.Message);
+ throw;
+ }
+ }
+
+ public void GenericException2WithCondition(int input) where TException : Exception
+ {
+ try {
+ Console.WriteLine(input);
+ } catch (TException val) when (val.Message.Contains("Test")) {
+ Console.WriteLine("{0} {1}", val, val.ToString());
+ }
+ }
+#endif
}
}
\ No newline at end of file
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.cs
index 1e9429978..e05e5bd91 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExpressionTrees.cs
@@ -585,7 +585,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
2004,
2008,
2012
- }).Any));
+ }).Any));
}
public void MethodGroupConstant()
@@ -625,16 +625,15 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
//no params
ToCode(X(), () => call(() => 42));
//one param
- ToCode(X(), () => from x in new int[2] {
+ ToCode(X(), () => new int[2] {
37,
42
- }
- select x * 2);
+ }.Select((int x) => x * 2));
//two params
ToCode(X(), () => new int[2] {
- 37,
- 42
- }.Select((int x, int i) => x * 2));
+ 37,
+ 42
+ }.Select((int x, int i) => x * 2));
}
public void CurriedLambda()
@@ -731,13 +730,12 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
public void QuotedWithAnonymous()
{
- ToCode(X(), () => (from o in new[] {
+ ToCode(X(), () => new[] {
new {
X = "a",
Y = "b"
}
- }
- select o.X + o.Y).Single());
+ }.Select(o => o.X + o.Y).Single());
}
public void StaticCall()
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs
index 13416aaf1..0aa2ecae5 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs
@@ -1468,9 +1468,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests
DateTimeFormat = new DateTimeFormatInfo {
ShortDatePattern = "ddmmyy"
},
- NumberFormat = (from format in source
- where format.CurrencySymbol == "$"
- select format).First()
+ NumberFormat = source.Where((NumberFormatInfo format) => format.CurrencySymbol == "$").First()
}
});
}
@@ -1678,13 +1676,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests
});
}
- private void NestedListWithIndexInitializer(MyEnum myEnum)
+ private List> NestedListWithIndexInitializer(MyEnum myEnum)
{
-#if !OPT
- List> list = new List> {
-#else
- List> obj = new List> {
-#endif
+ return new List> {
[0] = {
1,
2,
@@ -1717,13 +1711,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests
});
}
- public static void Issue1390(IEnumerable tokens, bool alwaysAllowAdministrators, char wireDelimiter)
+ public static List> Issue1390(IEnumerable tokens, bool alwaysAllowAdministrators, char wireDelimiter)
{
-#if OPT
- List> obj = new List> {
-#else
- List> list = new List> {
-#endif
+ return new List> {
{
"tokens",
string.Join(wireDelimiter.ToString(), tokens),
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InlineAssignmentTest.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InlineAssignmentTest.cs
index 9620accb5..8ca021f08 100644
--- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InlineAssignmentTest.cs
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/InlineAssignmentTest.cs
@@ -32,11 +32,17 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
get;
set;
}
+
public static int StaticProperty {
get;
set;
}
+ public bool BoolProperty {
+ get;
+ set;
+ }
+
public void SimpleInlineWithLocals()
{
int index;
@@ -136,5 +142,10 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
return InstanceProperty = GetIndex();
}
+
+ public bool BoolPropertyTest(object x)
+ {
+ return BoolProperty = (x != null);
+ }
}
}
diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LocalFunctions.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LocalFunctions.cs
new file mode 100644
index 000000000..581f6eac6
--- /dev/null
+++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LocalFunctions.cs
@@ -0,0 +1,325 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this
+// software and associated documentation files (the "Software"), to deal in the Software
+// without restriction, including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+// to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or
+// substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace LocalFunctions
+{
+ internal class LocalFunctions
+ {
+ private int field;
+
+ private Lazy
diff --git a/ILSpy.BamlDecompiler.Tests/BamlTestRunner.cs b/ILSpy.BamlDecompiler.Tests/BamlTestRunner.cs
index be9039601..682fc679e 100644
--- a/ILSpy.BamlDecompiler.Tests/BamlTestRunner.cs
+++ b/ILSpy.BamlDecompiler.Tests/BamlTestRunner.cs
@@ -107,6 +107,18 @@ namespace ILSpy.BamlDecompiler.Tests
RunTest("cases/issue1435");
}
+ [Test]
+ public void Issue1546()
+ {
+ RunTest("cases/issue1546");
+ }
+
+ [Test]
+ public void Issue1547()
+ {
+ RunTest("cases/issue1547");
+ }
+
#region RunTest
void RunTest(string name)
{
diff --git a/ILSpy.BamlDecompiler.Tests/Cases/AvalonDockCommon.xaml b/ILSpy.BamlDecompiler.Tests/Cases/AvalonDockCommon.xaml
index bcb18aed2..31d456472 100644
--- a/ILSpy.BamlDecompiler.Tests/Cases/AvalonDockCommon.xaml
+++ b/ILSpy.BamlDecompiler.Tests/Cases/AvalonDockCommon.xaml
@@ -35,8 +35,8 @@
-
-
+
+
diff --git a/ILSpy.BamlDecompiler.Tests/Cases/Issue1546.xaml b/ILSpy.BamlDecompiler.Tests/Cases/Issue1546.xaml
new file mode 100644
index 000000000..c09ce5b77
--- /dev/null
+++ b/ILSpy.BamlDecompiler.Tests/Cases/Issue1546.xaml
@@ -0,0 +1,35 @@
+
+ #f1f1f1
+ #2d2d30
+ #3f3f41
+ #007acc
+ #333337
+ #3f3f3f
+ #999999
+ #686868
+ #9e9e9e
+ #f1f1f1
+ #2d2d30
+ #3f3f41
+ #b20000
+ #990000
+ #009700
+ #007400
+ #1c97ea
+ #007acc
+ #333337
+ #3f3f3f
+ #999999
+ #686868
+ #9e9e9e
+
+
+
+
+
+ #FFD1D1D1
+
+ #FFA3A3A3
+
+ #FF747474
+
\ No newline at end of file
diff --git a/ILSpy.BamlDecompiler.Tests/Cases/Issue1547.xaml b/ILSpy.BamlDecompiler.Tests/Cases/Issue1547.xaml
new file mode 100644
index 000000000..8943fcfa3
--- /dev/null
+++ b/ILSpy.BamlDecompiler.Tests/Cases/Issue1547.xaml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/ILSpy.BamlDecompiler.Tests/Cases/Issue1547.xaml.cs b/ILSpy.BamlDecompiler.Tests/Cases/Issue1547.xaml.cs
new file mode 100644
index 000000000..f9be09f20
--- /dev/null
+++ b/ILSpy.BamlDecompiler.Tests/Cases/Issue1547.xaml.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace ILSpy.BamlDecompiler.Tests.Cases
+{
+ ///
+ /// Interaction logic for Issue1547.xaml
+ ///
+ public partial class Issue1547 : Window
+ {
+ public Issue1547()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj b/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj
index 198bbe621..1958ed447 100644
--- a/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj
+++ b/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj
@@ -31,7 +31,7 @@
-
+
@@ -47,6 +47,7 @@
AttachedEvent.xaml
+
MyControl.xaml
@@ -74,6 +75,12 @@
MSBuild:Compile
+
+ MSBuild:Compile
+
+
+ MSBuild:Compile
+
Designer
diff --git a/ILSpy.BamlDecompiler.Tests/app.config b/ILSpy.BamlDecompiler.Tests/app.config
index 5095b0e47..8eaf7eb82 100644
--- a/ILSpy.BamlDecompiler.Tests/app.config
+++ b/ILSpy.BamlDecompiler.Tests/app.config
@@ -7,8 +7,14 @@
+
+
+
+
+
+
-
+
diff --git a/ILSpy.BamlDecompiler/Baml/KnownThings.cs b/ILSpy.BamlDecompiler/Baml/KnownThings.cs
index 5b82a0221..c5ab16072 100644
--- a/ILSpy.BamlDecompiler/Baml/KnownThings.cs
+++ b/ILSpy.BamlDecompiler/Baml/KnownThings.cs
@@ -45,11 +45,15 @@ namespace ILSpy.BamlDecompiler.Baml {
strings = new Dictionary();
resources = new Dictionary();
- InitAssemblies();
- InitTypes();
- InitMembers();
- InitStrings();
- InitResources();
+ try {
+ InitAssemblies();
+ InitTypes();
+ InitMembers();
+ InitStrings();
+ InitResources();
+ } catch (Exception ex) {
+ throw new ICSharpCode.Decompiler.DecompilerException(typeSystem.MainModule.PEFile, ex.Message, ex);
+ }
}
public Func Types => id => types[id];
@@ -57,7 +61,14 @@ namespace ILSpy.BamlDecompiler.Baml {
public Func Strings => id => strings[id];
public Func Resources => id => resources[id];
public IModule FrameworkAssembly => assemblies[0];
- IModule ResolveAssembly(string name) => typeSystem.Modules.First(m => m.FullAssemblyName == name);
+ IModule ResolveAssembly(string name)
+ {
+ IModule module = typeSystem.Modules.FirstOrDefault(m => m.FullAssemblyName == name);
+ if (module == null)
+ throw new Exception("Could not resolve known assembly '" + name + "'!");
+ return module;
+ }
+
ITypeDefinition InitType(IModule assembly, string ns, string name) => assembly.GetTypeDefinition(new TopLevelTypeName(ns, name));
KnownMember InitMember(KnownTypes parent, string name, ITypeDefinition type) => new KnownMember(parent, types[parent], name, type);
}
diff --git a/ILSpy.BamlDecompiler/Baml/test.cs b/ILSpy.BamlDecompiler/Baml/test.cs
deleted file mode 100644
index c2727645f..000000000
--- a/ILSpy.BamlDecompiler/Baml/test.cs
+++ /dev/null
@@ -1,2325 +0,0 @@
- internal enum KnownTypes : short {
- Unknown = 0,
- AccessText = 1,
- AdornedElementPlaceholder = 2,
- Adorner = 3,
- AdornerDecorator = 4,
- AdornerLayer = 5,
- AffineTransform3D = 6,
- AmbientLight = 7,
- AnchoredBlock = 8,
- Animatable = 9,
- AnimationClock = 10,
- AnimationTimeline = 11,
- Application = 12,
- ArcSegment = 13,
- ArrayExtension = 14,
- AxisAngleRotation3D = 15,
- BaseIListConverter = 16,
- BeginStoryboard = 17,
- BevelBitmapEffect = 18,
- BezierSegment = 19,
- Binding = 20,
- BindingBase = 21,
- BindingExpression = 22,
- BindingExpressionBase = 23,
- BindingListCollectionView = 24,
- BitmapDecoder = 25,
- BitmapEffect = 26,
- BitmapEffectCollection = 27,
- BitmapEffectGroup = 28,
- BitmapEffectInput = 29,
- BitmapEncoder = 30,
- BitmapFrame = 31,
- BitmapImage = 32,
- BitmapMetadata = 33,
- BitmapPalette = 34,
- BitmapSource = 35,
- Block = 36,
- BlockUIContainer = 37,
- BlurBitmapEffect = 38,
- BmpBitmapDecoder = 39,
- BmpBitmapEncoder = 40,
- Bold = 41,
- BoolIListConverter = 42,
- Boolean = 43,
- BooleanAnimationBase = 44,
- BooleanAnimationUsingKeyFrames = 45,
- BooleanConverter = 46,
- BooleanKeyFrame = 47,
- BooleanKeyFrameCollection = 48,
- BooleanToVisibilityConverter = 49,
- Border = 50,
- BorderGapMaskConverter = 51,
- Brush = 52,
- BrushConverter = 53,
- BulletDecorator = 54,
- Button = 55,
- ButtonBase = 56,
- Byte = 57,
- ByteAnimation = 58,
- ByteAnimationBase = 59,
- ByteAnimationUsingKeyFrames = 60,
- ByteConverter = 61,
- ByteKeyFrame = 62,
- ByteKeyFrameCollection = 63,
- CachedBitmap = 64,
- Camera = 65,
- Canvas = 66,
- Char = 67,
- CharAnimationBase = 68,
- CharAnimationUsingKeyFrames = 69,
- CharConverter = 70,
- CharIListConverter = 71,
- CharKeyFrame = 72,
- CharKeyFrameCollection = 73,
- CheckBox = 74,
- Clock = 75,
- ClockController = 76,
- ClockGroup = 77,
- CollectionContainer = 78,
- CollectionView = 79,
- CollectionViewSource = 80,
- Color = 81,
- ColorAnimation = 82,
- ColorAnimationBase = 83,
- ColorAnimationUsingKeyFrames = 84,
- ColorConvertedBitmap = 85,
- ColorConvertedBitmapExtension = 86,
- ColorConverter = 87,
- ColorKeyFrame = 88,
- ColorKeyFrameCollection = 89,
- ColumnDefinition = 90,
- CombinedGeometry = 91,
- ComboBox = 92,
- ComboBoxItem = 93,
- CommandConverter = 94,
- ComponentResourceKey = 95,
- ComponentResourceKeyConverter = 96,
- CompositionTarget = 97,
- Condition = 98,
- ContainerVisual = 99,
- ContentControl = 100,
- ContentElement = 101,
- ContentPresenter = 102,
- ContentPropertyAttribute = 103,
- ContentWrapperAttribute = 104,
- ContextMenu = 105,
- ContextMenuService = 106,
- Control = 107,
- ControlTemplate = 108,
- ControllableStoryboardAction = 109,
- CornerRadius = 110,
- CornerRadiusConverter = 111,
- CroppedBitmap = 112,
- CultureInfo = 113,
- CultureInfoConverter = 114,
- CultureInfoIetfLanguageTagConverter = 115,
- Cursor = 116,
- CursorConverter = 117,
- DashStyle = 118,
- DataChangedEventManager = 119,
- DataTemplate = 120,
- DataTemplateKey = 121,
- DataTrigger = 122,
- DateTime = 123,
- DateTimeConverter = 124,
- DateTimeConverter2 = 125,
- Decimal = 126,
- DecimalAnimation = 127,
- DecimalAnimationBase = 128,
- DecimalAnimationUsingKeyFrames = 129,
- DecimalConverter = 130,
- DecimalKeyFrame = 131,
- DecimalKeyFrameCollection = 132,
- Decorator = 133,
- DefinitionBase = 134,
- DependencyObject = 135,
- DependencyProperty = 136,
- DependencyPropertyConverter = 137,
- DialogResultConverter = 138,
- DiffuseMaterial = 139,
- DirectionalLight = 140,
- DiscreteBooleanKeyFrame = 141,
- DiscreteByteKeyFrame = 142,
- DiscreteCharKeyFrame = 143,
- DiscreteColorKeyFrame = 144,
- DiscreteDecimalKeyFrame = 145,
- DiscreteDoubleKeyFrame = 146,
- DiscreteInt16KeyFrame = 147,
- DiscreteInt32KeyFrame = 148,
- DiscreteInt64KeyFrame = 149,
- DiscreteMatrixKeyFrame = 150,
- DiscreteObjectKeyFrame = 151,
- DiscretePoint3DKeyFrame = 152,
- DiscretePointKeyFrame = 153,
- DiscreteQuaternionKeyFrame = 154,
- DiscreteRectKeyFrame = 155,
- DiscreteRotation3DKeyFrame = 156,
- DiscreteSingleKeyFrame = 157,
- DiscreteSizeKeyFrame = 158,
- DiscreteStringKeyFrame = 159,
- DiscreteThicknessKeyFrame = 160,
- DiscreteVector3DKeyFrame = 161,
- DiscreteVectorKeyFrame = 162,
- DockPanel = 163,
- DocumentPageView = 164,
- DocumentReference = 165,
- DocumentViewer = 166,
- DocumentViewerBase = 167,
- Double = 168,
- DoubleAnimation = 169,
- DoubleAnimationBase = 170,
- DoubleAnimationUsingKeyFrames = 171,
- DoubleAnimationUsingPath = 172,
- DoubleCollection = 173,
- DoubleCollectionConverter = 174,
- DoubleConverter = 175,
- DoubleIListConverter = 176,
- DoubleKeyFrame = 177,
- DoubleKeyFrameCollection = 178,
- Drawing = 179,
- DrawingBrush = 180,
- DrawingCollection = 181,
- DrawingContext = 182,
- DrawingGroup = 183,
- DrawingImage = 184,
- DrawingVisual = 185,
- DropShadowBitmapEffect = 186,
- Duration = 187,
- DurationConverter = 188,
- DynamicResourceExtension = 189,
- DynamicResourceExtensionConverter = 190,
- Ellipse = 191,
- EllipseGeometry = 192,
- EmbossBitmapEffect = 193,
- EmissiveMaterial = 194,
- EnumConverter = 195,
- EventManager = 196,
- EventSetter = 197,
- EventTrigger = 198,
- Expander = 199,
- Expression = 200,
- ExpressionConverter = 201,
- Figure = 202,
- FigureLength = 203,
- FigureLengthConverter = 204,
- FixedDocument = 205,
- FixedDocumentSequence = 206,
- FixedPage = 207,
- Floater = 208,
- FlowDocument = 209,
- FlowDocumentPageViewer = 210,
- FlowDocumentReader = 211,
- FlowDocumentScrollViewer = 212,
- FocusManager = 213,
- FontFamily = 214,
- FontFamilyConverter = 215,
- FontSizeConverter = 216,
- FontStretch = 217,
- FontStretchConverter = 218,
- FontStyle = 219,
- FontStyleConverter = 220,
- FontWeight = 221,
- FontWeightConverter = 222,
- FormatConvertedBitmap = 223,
- Frame = 224,
- FrameworkContentElement = 225,
- FrameworkElement = 226,
- FrameworkElementFactory = 227,
- FrameworkPropertyMetadata = 228,
- FrameworkPropertyMetadataOptions = 229,
- FrameworkRichTextComposition = 230,
- FrameworkTemplate = 231,
- FrameworkTextComposition = 232,
- Freezable = 233,
- GeneralTransform = 234,
- GeneralTransformCollection = 235,
- GeneralTransformGroup = 236,
- Geometry = 237,
- Geometry3D = 238,
- GeometryCollection = 239,
- GeometryConverter = 240,
- GeometryDrawing = 241,
- GeometryGroup = 242,
- GeometryModel3D = 243,
- GestureRecognizer = 244,
- GifBitmapDecoder = 245,
- GifBitmapEncoder = 246,
- GlyphRun = 247,
- GlyphRunDrawing = 248,
- GlyphTypeface = 249,
- Glyphs = 250,
- GradientBrush = 251,
- GradientStop = 252,
- GradientStopCollection = 253,
- Grid = 254,
- GridLength = 255,
- GridLengthConverter = 256,
- GridSplitter = 257,
- GridView = 258,
- GridViewColumn = 259,
- GridViewColumnHeader = 260,
- GridViewHeaderRowPresenter = 261,
- GridViewRowPresenter = 262,
- GridViewRowPresenterBase = 263,
- GroupBox = 264,
- GroupItem = 265,
- Guid = 266,
- GuidConverter = 267,
- GuidelineSet = 268,
- HeaderedContentControl = 269,
- HeaderedItemsControl = 270,
- HierarchicalDataTemplate = 271,
- HostVisual = 272,
- Hyperlink = 273,
- IAddChild = 274,
- IAddChildInternal = 275,
- ICommand = 276,
- IComponentConnector = 277,
- INameScope = 278,
- IStyleConnector = 279,
- IconBitmapDecoder = 280,
- Image = 281,
- ImageBrush = 282,
- ImageDrawing = 283,
- ImageMetadata = 284,
- ImageSource = 285,
- ImageSourceConverter = 286,
- InPlaceBitmapMetadataWriter = 287,
- InkCanvas = 288,
- InkPresenter = 289,
- Inline = 290,
- InlineCollection = 291,
- InlineUIContainer = 292,
- InputBinding = 293,
- InputDevice = 294,
- InputLanguageManager = 295,
- InputManager = 296,
- InputMethod = 297,
- InputScope = 298,
- InputScopeConverter = 299,
- InputScopeName = 300,
- InputScopeNameConverter = 301,
- Int16 = 302,
- Int16Animation = 303,
- Int16AnimationBase = 304,
- Int16AnimationUsingKeyFrames = 305,
- Int16Converter = 306,
- Int16KeyFrame = 307,
- Int16KeyFrameCollection = 308,
- Int32 = 309,
- Int32Animation = 310,
- Int32AnimationBase = 311,
- Int32AnimationUsingKeyFrames = 312,
- Int32Collection = 313,
- Int32CollectionConverter = 314,
- Int32Converter = 315,
- Int32KeyFrame = 316,
- Int32KeyFrameCollection = 317,
- Int32Rect = 318,
- Int32RectConverter = 319,
- Int64 = 320,
- Int64Animation = 321,
- Int64AnimationBase = 322,
- Int64AnimationUsingKeyFrames = 323,
- Int64Converter = 324,
- Int64KeyFrame = 325,
- Int64KeyFrameCollection = 326,
- Italic = 327,
- ItemCollection = 328,
- ItemsControl = 329,
- ItemsPanelTemplate = 330,
- ItemsPresenter = 331,
- JournalEntry = 332,
- JournalEntryListConverter = 333,
- JournalEntryUnifiedViewConverter = 334,
- JpegBitmapDecoder = 335,
- JpegBitmapEncoder = 336,
- KeyBinding = 337,
- KeyConverter = 338,
- KeyGesture = 339,
- KeyGestureConverter = 340,
- KeySpline = 341,
- KeySplineConverter = 342,
- KeyTime = 343,
- KeyTimeConverter = 344,
- KeyboardDevice = 345,
- Label = 346,
- LateBoundBitmapDecoder = 347,
- LengthConverter = 348,
- Light = 349,
- Line = 350,
- LineBreak = 351,
- LineGeometry = 352,
- LineSegment = 353,
- LinearByteKeyFrame = 354,
- LinearColorKeyFrame = 355,
- LinearDecimalKeyFrame = 356,
- LinearDoubleKeyFrame = 357,
- LinearGradientBrush = 358,
- LinearInt16KeyFrame = 359,
- LinearInt32KeyFrame = 360,
- LinearInt64KeyFrame = 361,
- LinearPoint3DKeyFrame = 362,
- LinearPointKeyFrame = 363,
- LinearQuaternionKeyFrame = 364,
- LinearRectKeyFrame = 365,
- LinearRotation3DKeyFrame = 366,
- LinearSingleKeyFrame = 367,
- LinearSizeKeyFrame = 368,
- LinearThicknessKeyFrame = 369,
- LinearVector3DKeyFrame = 370,
- LinearVectorKeyFrame = 371,
- List = 372,
- ListBox = 373,
- ListBoxItem = 374,
- ListCollectionView = 375,
- ListItem = 376,
- ListView = 377,
- ListViewItem = 378,
- Localization = 379,
- LostFocusEventManager = 380,
- MarkupExtension = 381,
- Material = 382,
- MaterialCollection = 383,
- MaterialGroup = 384,
- Matrix = 385,
- Matrix3D = 386,
- Matrix3DConverter = 387,
- MatrixAnimationBase = 388,
- MatrixAnimationUsingKeyFrames = 389,
- MatrixAnimationUsingPath = 390,
- MatrixCamera = 391,
- MatrixConverter = 392,
- MatrixKeyFrame = 393,
- MatrixKeyFrameCollection = 394,
- MatrixTransform = 395,
- MatrixTransform3D = 396,
- MediaClock = 397,
- MediaElement = 398,
- MediaPlayer = 399,
- MediaTimeline = 400,
- Menu = 401,
- MenuBase = 402,
- MenuItem = 403,
- MenuScrollingVisibilityConverter = 404,
- MeshGeometry3D = 405,
- Model3D = 406,
- Model3DCollection = 407,
- Model3DGroup = 408,
- ModelVisual3D = 409,
- ModifierKeysConverter = 410,
- MouseActionConverter = 411,
- MouseBinding = 412,
- MouseDevice = 413,
- MouseGesture = 414,
- MouseGestureConverter = 415,
- MultiBinding = 416,
- MultiBindingExpression = 417,
- MultiDataTrigger = 418,
- MultiTrigger = 419,
- NameScope = 420,
- NavigationWindow = 421,
- NullExtension = 422,
- NullableBoolConverter = 423,
- NullableConverter = 424,
- NumberSubstitution = 425,
- Object = 426,
- ObjectAnimationBase = 427,
- ObjectAnimationUsingKeyFrames = 428,
- ObjectDataProvider = 429,
- ObjectKeyFrame = 430,
- ObjectKeyFrameCollection = 431,
- OrthographicCamera = 432,
- OuterGlowBitmapEffect = 433,
- Page = 434,
- PageContent = 435,
- PageFunctionBase = 436,
- Panel = 437,
- Paragraph = 438,
- ParallelTimeline = 439,
- ParserContext = 440,
- PasswordBox = 441,
- Path = 442,
- PathFigure = 443,
- PathFigureCollection = 444,
- PathFigureCollectionConverter = 445,
- PathGeometry = 446,
- PathSegment = 447,
- PathSegmentCollection = 448,
- PauseStoryboard = 449,
- Pen = 450,
- PerspectiveCamera = 451,
- PixelFormat = 452,
- PixelFormatConverter = 453,
- PngBitmapDecoder = 454,
- PngBitmapEncoder = 455,
- Point = 456,
- Point3D = 457,
- Point3DAnimation = 458,
- Point3DAnimationBase = 459,
- Point3DAnimationUsingKeyFrames = 460,
- Point3DCollection = 461,
- Point3DCollectionConverter = 462,
- Point3DConverter = 463,
- Point3DKeyFrame = 464,
- Point3DKeyFrameCollection = 465,
- Point4D = 466,
- Point4DConverter = 467,
- PointAnimation = 468,
- PointAnimationBase = 469,
- PointAnimationUsingKeyFrames = 470,
- PointAnimationUsingPath = 471,
- PointCollection = 472,
- PointCollectionConverter = 473,
- PointConverter = 474,
- PointIListConverter = 475,
- PointKeyFrame = 476,
- PointKeyFrameCollection = 477,
- PointLight = 478,
- PointLightBase = 479,
- PolyBezierSegment = 480,
- PolyLineSegment = 481,
- PolyQuadraticBezierSegment = 482,
- Polygon = 483,
- Polyline = 484,
- Popup = 485,
- PresentationSource = 486,
- PriorityBinding = 487,
- PriorityBindingExpression = 488,
- ProgressBar = 489,
- ProjectionCamera = 490,
- PropertyPath = 491,
- PropertyPathConverter = 492,
- QuadraticBezierSegment = 493,
- Quaternion = 494,
- QuaternionAnimation = 495,
- QuaternionAnimationBase = 496,
- QuaternionAnimationUsingKeyFrames = 497,
- QuaternionConverter = 498,
- QuaternionKeyFrame = 499,
- QuaternionKeyFrameCollection = 500,
- QuaternionRotation3D = 501,
- RadialGradientBrush = 502,
- RadioButton = 503,
- RangeBase = 504,
- Rect = 505,
- Rect3D = 506,
- Rect3DConverter = 507,
- RectAnimation = 508,
- RectAnimationBase = 509,
- RectAnimationUsingKeyFrames = 510,
- RectConverter = 511,
- RectKeyFrame = 512,
- RectKeyFrameCollection = 513,
- Rectangle = 514,
- RectangleGeometry = 515,
- RelativeSource = 516,
- RemoveStoryboard = 517,
- RenderOptions = 518,
- RenderTargetBitmap = 519,
- RepeatBehavior = 520,
- RepeatBehaviorConverter = 521,
- RepeatButton = 522,
- ResizeGrip = 523,
- ResourceDictionary = 524,
- ResourceKey = 525,
- ResumeStoryboard = 526,
- RichTextBox = 527,
- RotateTransform = 528,
- RotateTransform3D = 529,
- Rotation3D = 530,
- Rotation3DAnimation = 531,
- Rotation3DAnimationBase = 532,
- Rotation3DAnimationUsingKeyFrames = 533,
- Rotation3DKeyFrame = 534,
- Rotation3DKeyFrameCollection = 535,
- RoutedCommand = 536,
- RoutedEvent = 537,
- RoutedEventConverter = 538,
- RoutedUICommand = 539,
- RoutingStrategy = 540,
- RowDefinition = 541,
- Run = 542,
- RuntimeNamePropertyAttribute = 543,
- SByte = 544,
- SByteConverter = 545,
- ScaleTransform = 546,
- ScaleTransform3D = 547,
- ScrollBar = 548,
- ScrollContentPresenter = 549,
- ScrollViewer = 550,
- Section = 551,
- SeekStoryboard = 552,
- Selector = 553,
- Separator = 554,
- SetStoryboardSpeedRatio = 555,
- Setter = 556,
- SetterBase = 557,
- Shape = 558,
- Single = 559,
- SingleAnimation = 560,
- SingleAnimationBase = 561,
- SingleAnimationUsingKeyFrames = 562,
- SingleConverter = 563,
- SingleKeyFrame = 564,
- SingleKeyFrameCollection = 565,
- Size = 566,
- Size3D = 567,
- Size3DConverter = 568,
- SizeAnimation = 569,
- SizeAnimationBase = 570,
- SizeAnimationUsingKeyFrames = 571,
- SizeConverter = 572,
- SizeKeyFrame = 573,
- SizeKeyFrameCollection = 574,
- SkewTransform = 575,
- SkipStoryboardToFill = 576,
- Slider = 577,
- SolidColorBrush = 578,
- SoundPlayerAction = 579,
- Span = 580,
- SpecularMaterial = 581,
- SpellCheck = 582,
- SplineByteKeyFrame = 583,
- SplineColorKeyFrame = 584,
- SplineDecimalKeyFrame = 585,
- SplineDoubleKeyFrame = 586,
- SplineInt16KeyFrame = 587,
- SplineInt32KeyFrame = 588,
- SplineInt64KeyFrame = 589,
- SplinePoint3DKeyFrame = 590,
- SplinePointKeyFrame = 591,
- SplineQuaternionKeyFrame = 592,
- SplineRectKeyFrame = 593,
- SplineRotation3DKeyFrame = 594,
- SplineSingleKeyFrame = 595,
- SplineSizeKeyFrame = 596,
- SplineThicknessKeyFrame = 597,
- SplineVector3DKeyFrame = 598,
- SplineVectorKeyFrame = 599,
- SpotLight = 600,
- StackPanel = 601,
- StaticExtension = 602,
- StaticResourceExtension = 603,
- StatusBar = 604,
- StatusBarItem = 605,
- StickyNoteControl = 606,
- StopStoryboard = 607,
- Storyboard = 608,
- StreamGeometry = 609,
- StreamGeometryContext = 610,
- StreamResourceInfo = 611,
- String = 612,
- StringAnimationBase = 613,
- StringAnimationUsingKeyFrames = 614,
- StringConverter = 615,
- StringKeyFrame = 616,
- StringKeyFrameCollection = 617,
- StrokeCollection = 618,
- StrokeCollectionConverter = 619,
- Style = 620,
- Stylus = 621,
- StylusDevice = 622,
- TabControl = 623,
- TabItem = 624,
- TabPanel = 625,
- Table = 626,
- TableCell = 627,
- TableColumn = 628,
- TableRow = 629,
- TableRowGroup = 630,
- TabletDevice = 631,
- TemplateBindingExpression = 632,
- TemplateBindingExpressionConverter = 633,
- TemplateBindingExtension = 634,
- TemplateBindingExtensionConverter = 635,
- TemplateKey = 636,
- TemplateKeyConverter = 637,
- TextBlock = 638,
- TextBox = 639,
- TextBoxBase = 640,
- TextComposition = 641,
- TextCompositionManager = 642,
- TextDecoration = 643,
- TextDecorationCollection = 644,
- TextDecorationCollectionConverter = 645,
- TextEffect = 646,
- TextEffectCollection = 647,
- TextElement = 648,
- TextSearch = 649,
- ThemeDictionaryExtension = 650,
- Thickness = 651,
- ThicknessAnimation = 652,
- ThicknessAnimationBase = 653,
- ThicknessAnimationUsingKeyFrames = 654,
- ThicknessConverter = 655,
- ThicknessKeyFrame = 656,
- ThicknessKeyFrameCollection = 657,
- Thumb = 658,
- TickBar = 659,
- TiffBitmapDecoder = 660,
- TiffBitmapEncoder = 661,
- TileBrush = 662,
- TimeSpan = 663,
- TimeSpanConverter = 664,
- Timeline = 665,
- TimelineCollection = 666,
- TimelineGroup = 667,
- ToggleButton = 668,
- ToolBar = 669,
- ToolBarOverflowPanel = 670,
- ToolBarPanel = 671,
- ToolBarTray = 672,
- ToolTip = 673,
- ToolTipService = 674,
- Track = 675,
- Transform = 676,
- Transform3D = 677,
- Transform3DCollection = 678,
- Transform3DGroup = 679,
- TransformCollection = 680,
- TransformConverter = 681,
- TransformGroup = 682,
- TransformedBitmap = 683,
- TranslateTransform = 684,
- TranslateTransform3D = 685,
- TreeView = 686,
- TreeViewItem = 687,
- Trigger = 688,
- TriggerAction = 689,
- TriggerBase = 690,
- TypeExtension = 691,
- TypeTypeConverter = 692,
- Typography = 693,
- UIElement = 694,
- UInt16 = 695,
- UInt16Converter = 696,
- UInt32 = 697,
- UInt32Converter = 698,
- UInt64 = 699,
- UInt64Converter = 700,
- UShortIListConverter = 701,
- Underline = 702,
- UniformGrid = 703,
- Uri = 704,
- UriTypeConverter = 705,
- UserControl = 706,
- Validation = 707,
- Vector = 708,
- Vector3D = 709,
- Vector3DAnimation = 710,
- Vector3DAnimationBase = 711,
- Vector3DAnimationUsingKeyFrames = 712,
- Vector3DCollection = 713,
- Vector3DCollectionConverter = 714,
- Vector3DConverter = 715,
- Vector3DKeyFrame = 716,
- Vector3DKeyFrameCollection = 717,
- VectorAnimation = 718,
- VectorAnimationBase = 719,
- VectorAnimationUsingKeyFrames = 720,
- VectorCollection = 721,
- VectorCollectionConverter = 722,
- VectorConverter = 723,
- VectorKeyFrame = 724,
- VectorKeyFrameCollection = 725,
- VideoDrawing = 726,
- ViewBase = 727,
- Viewbox = 728,
- Viewport3D = 729,
- Viewport3DVisual = 730,
- VirtualizingPanel = 731,
- VirtualizingStackPanel = 732,
- Visual = 733,
- Visual3D = 734,
- VisualBrush = 735,
- VisualTarget = 736,
- WeakEventManager = 737,
- WhitespaceSignificantCollectionAttribute = 738,
- Window = 739,
- WmpBitmapDecoder = 740,
- WmpBitmapEncoder = 741,
- WrapPanel = 742,
- WriteableBitmap = 743,
- XamlBrushSerializer = 744,
- XamlInt32CollectionSerializer = 745,
- XamlPathDataSerializer = 746,
- XamlPoint3DCollectionSerializer = 747,
- XamlPointCollectionSerializer = 748,
- XamlReader = 749,
- XamlStyleSerializer = 750,
- XamlTemplateSerializer = 751,
- XamlVector3DCollectionSerializer = 752,
- XamlWriter = 753,
- XmlDataProvider = 754,
- XmlLangPropertyAttribute = 755,
- XmlLanguage = 756,
- XmlLanguageConverter = 757,
- XmlNamespaceMapping = 758,
- ZoomPercentageConverter = 759,
- }
-
- internal enum KnownMembers : short {
- Unknown = 0,
- AccessText_Text = 1,
- BeginStoryboard_Storyboard = 2,
- BitmapEffectGroup_Children = 3,
- Border_Background = 4,
- Border_BorderBrush = 5,
- Border_BorderThickness = 6,
- ButtonBase_Command = 7,
- ButtonBase_CommandParameter = 8,
- ButtonBase_CommandTarget = 9,
- ButtonBase_IsPressed = 10,
- ColumnDefinition_MaxWidth = 11,
- ColumnDefinition_MinWidth = 12,
- ColumnDefinition_Width = 13,
- ContentControl_Content = 14,
- ContentControl_ContentTemplate = 15,
- ContentControl_ContentTemplateSelector = 16,
- ContentControl_HasContent = 17,
- ContentElement_Focusable = 18,
- ContentPresenter_Content = 19,
- ContentPresenter_ContentSource = 20,
- ContentPresenter_ContentTemplate = 21,
- ContentPresenter_ContentTemplateSelector = 22,
- ContentPresenter_RecognizesAccessKey = 23,
- Control_Background = 24,
- Control_BorderBrush = 25,
- Control_BorderThickness = 26,
- Control_FontFamily = 27,
- Control_FontSize = 28,
- Control_FontStretch = 29,
- Control_FontStyle = 30,
- Control_FontWeight = 31,
- Control_Foreground = 32,
- Control_HorizontalContentAlignment = 33,
- Control_IsTabStop = 34,
- Control_Padding = 35,
- Control_TabIndex = 36,
- Control_Template = 37,
- Control_VerticalContentAlignment = 38,
- DockPanel_Dock = 39,
- DockPanel_LastChildFill = 40,
- DocumentViewerBase_Document = 41,
- DrawingGroup_Children = 42,
- FlowDocumentReader_Document = 43,
- FlowDocumentScrollViewer_Document = 44,
- FrameworkContentElement_Style = 45,
- FrameworkElement_FlowDirection = 46,
- FrameworkElement_Height = 47,
- FrameworkElement_HorizontalAlignment = 48,
- FrameworkElement_Margin = 49,
- FrameworkElement_MaxHeight = 50,
- FrameworkElement_MaxWidth = 51,
- FrameworkElement_MinHeight = 52,
- FrameworkElement_MinWidth = 53,
- FrameworkElement_Name = 54,
- FrameworkElement_Style = 55,
- FrameworkElement_VerticalAlignment = 56,
- FrameworkElement_Width = 57,
- GeneralTransformGroup_Children = 58,
- GeometryGroup_Children = 59,
- GradientBrush_GradientStops = 60,
- Grid_Column = 61,
- Grid_ColumnSpan = 62,
- Grid_Row = 63,
- Grid_RowSpan = 64,
- GridViewColumn_Header = 65,
- HeaderedContentControl_HasHeader = 66,
- HeaderedContentControl_Header = 67,
- HeaderedContentControl_HeaderTemplate = 68,
- HeaderedContentControl_HeaderTemplateSelector = 69,
- HeaderedItemsControl_HasHeader = 70,
- HeaderedItemsControl_Header = 71,
- HeaderedItemsControl_HeaderTemplate = 72,
- HeaderedItemsControl_HeaderTemplateSelector = 73,
- Hyperlink_NavigateUri = 74,
- Image_Source = 75,
- Image_Stretch = 76,
- ItemsControl_ItemContainerStyle = 77,
- ItemsControl_ItemContainerStyleSelector = 78,
- ItemsControl_ItemTemplate = 79,
- ItemsControl_ItemTemplateSelector = 80,
- ItemsControl_ItemsPanel = 81,
- ItemsControl_ItemsSource = 82,
- MaterialGroup_Children = 83,
- Model3DGroup_Children = 84,
- Page_Content = 85,
- Panel_Background = 86,
- Path_Data = 87,
- PathFigure_Segments = 88,
- PathGeometry_Figures = 89,
- Popup_Child = 90,
- Popup_IsOpen = 91,
- Popup_Placement = 92,
- Popup_PopupAnimation = 93,
- RowDefinition_Height = 94,
- RowDefinition_MaxHeight = 95,
- RowDefinition_MinHeight = 96,
- ScrollViewer_CanContentScroll = 97,
- ScrollViewer_HorizontalScrollBarVisibility = 98,
- ScrollViewer_VerticalScrollBarVisibility = 99,
- Shape_Fill = 100,
- Shape_Stroke = 101,
- Shape_StrokeThickness = 102,
- TextBlock_Background = 103,
- TextBlock_FontFamily = 104,
- TextBlock_FontSize = 105,
- TextBlock_FontStretch = 106,
- TextBlock_FontStyle = 107,
- TextBlock_FontWeight = 108,
- TextBlock_Foreground = 109,
- TextBlock_Text = 110,
- TextBlock_TextDecorations = 111,
- TextBlock_TextTrimming = 112,
- TextBlock_TextWrapping = 113,
- TextBox_Text = 114,
- TextElement_Background = 115,
- TextElement_FontFamily = 116,
- TextElement_FontSize = 117,
- TextElement_FontStretch = 118,
- TextElement_FontStyle = 119,
- TextElement_FontWeight = 120,
- TextElement_Foreground = 121,
- TimelineGroup_Children = 122,
- Track_IsDirectionReversed = 123,
- Track_Maximum = 124,
- Track_Minimum = 125,
- Track_Orientation = 126,
- Track_Value = 127,
- Track_ViewportSize = 128,
- Transform3DGroup_Children = 129,
- TransformGroup_Children = 130,
- UIElement_ClipToBounds = 131,
- UIElement_Focusable = 132,
- UIElement_IsEnabled = 133,
- UIElement_RenderTransform = 134,
- UIElement_Visibility = 135,
- Viewport3D_Children = 136,
-
- AdornedElementPlaceholder_Child = 138,
- AdornerDecorator_Child = 139,
- AnchoredBlock_Blocks = 140,
- ArrayExtension_Items = 141,
- BlockUIContainer_Child = 142,
- Bold_Inlines = 143,
- BooleanAnimationUsingKeyFrames_KeyFrames = 144,
- Border_Child = 145,
- BulletDecorator_Child = 146,
- Button_Content = 147,
- ButtonBase_Content = 148,
- ByteAnimationUsingKeyFrames_KeyFrames = 149,
- Canvas_Children = 150,
- CharAnimationUsingKeyFrames_KeyFrames = 151,
- CheckBox_Content = 152,
- ColorAnimationUsingKeyFrames_KeyFrames = 153,
- ComboBox_Items = 154,
- ComboBoxItem_Content = 155,
- ContextMenu_Items = 156,
- ControlTemplate_VisualTree = 157,
- DataTemplate_VisualTree = 158,
- DataTrigger_Setters = 159,
- DecimalAnimationUsingKeyFrames_KeyFrames = 160,
- Decorator_Child = 161,
- DockPanel_Children = 162,
- DocumentViewer_Document = 163,
- DoubleAnimationUsingKeyFrames_KeyFrames = 164,
- EventTrigger_Actions = 165,
- Expander_Content = 166,
- Figure_Blocks = 167,
- FixedDocument_Pages = 168,
- FixedDocumentSequence_References = 169,
- FixedPage_Children = 170,
- Floater_Blocks = 171,
- FlowDocument_Blocks = 172,
- FlowDocumentPageViewer_Document = 173,
- FrameworkTemplate_VisualTree = 174,
- Grid_Children = 175,
- GridView_Columns = 176,
- GridViewColumnHeader_Content = 177,
- GroupBox_Content = 178,
- GroupItem_Content = 179,
- HeaderedContentControl_Content = 180,
- HeaderedItemsControl_Items = 181,
- HierarchicalDataTemplate_VisualTree = 182,
- Hyperlink_Inlines = 183,
- InkCanvas_Children = 184,
- InkPresenter_Child = 185,
- InlineUIContainer_Child = 186,
- InputScopeName_NameValue = 187,
- Int16AnimationUsingKeyFrames_KeyFrames = 188,
- Int32AnimationUsingKeyFrames_KeyFrames = 189,
- Int64AnimationUsingKeyFrames_KeyFrames = 190,
- Italic_Inlines = 191,
- ItemsControl_Items = 192,
- ItemsPanelTemplate_VisualTree = 193,
- Label_Content = 194,
- LinearGradientBrush_GradientStops = 195,
- List_ListItems = 196,
- ListBox_Items = 197,
- ListBoxItem_Content = 198,
- ListItem_Blocks = 199,
- ListView_Items = 200,
- ListViewItem_Content = 201,
- MatrixAnimationUsingKeyFrames_KeyFrames = 202,
- Menu_Items = 203,
- MenuBase_Items = 204,
- MenuItem_Items = 205,
- ModelVisual3D_Children = 206,
- MultiBinding_Bindings = 207,
- MultiDataTrigger_Setters = 208,
- MultiTrigger_Setters = 209,
- ObjectAnimationUsingKeyFrames_KeyFrames = 210,
- PageContent_Child = 211,
- PageFunctionBase_Content = 212,
- Panel_Children = 213,
- Paragraph_Inlines = 214,
- ParallelTimeline_Children = 215,
- Point3DAnimationUsingKeyFrames_KeyFrames = 216,
- PointAnimationUsingKeyFrames_KeyFrames = 217,
- PriorityBinding_Bindings = 218,
- QuaternionAnimationUsingKeyFrames_KeyFrames = 219,
- RadialGradientBrush_GradientStops = 220,
- RadioButton_Content = 221,
- RectAnimationUsingKeyFrames_KeyFrames = 222,
- RepeatButton_Content = 223,
- RichTextBox_Document = 224,
- Rotation3DAnimationUsingKeyFrames_KeyFrames = 225,
- Run_Text = 226,
- ScrollViewer_Content = 227,
- Section_Blocks = 228,
- Selector_Items = 229,
- SingleAnimationUsingKeyFrames_KeyFrames = 230,
- SizeAnimationUsingKeyFrames_KeyFrames = 231,
- Span_Inlines = 232,
- StackPanel_Children = 233,
- StatusBar_Items = 234,
- StatusBarItem_Content = 235,
- Storyboard_Children = 236,
- StringAnimationUsingKeyFrames_KeyFrames = 237,
- Style_Setters = 238,
- TabControl_Items = 239,
- TabItem_Content = 240,
- TabPanel_Children = 241,
- Table_RowGroups = 242,
- TableCell_Blocks = 243,
- TableRow_Cells = 244,
- TableRowGroup_Rows = 245,
- TextBlock_Inlines = 246,
- ThicknessAnimationUsingKeyFrames_KeyFrames = 247,
- ToggleButton_Content = 248,
- ToolBar_Items = 249,
- ToolBarOverflowPanel_Children = 250,
- ToolBarPanel_Children = 251,
- ToolBarTray_ToolBars = 252,
- ToolTip_Content = 253,
- TreeView_Items = 254,
- TreeViewItem_Items = 255,
- Trigger_Setters = 256,
- Underline_Inlines = 257,
- UniformGrid_Children = 258,
- UserControl_Content = 259,
- Vector3DAnimationUsingKeyFrames_KeyFrames = 260,
- VectorAnimationUsingKeyFrames_KeyFrames = 261,
- Viewbox_Child = 262,
- Viewport3DVisual_Children = 263,
- VirtualizingPanel_Children = 264,
- VirtualizingStackPanel_Children = 265,
- Window_Content = 266,
- WrapPanel_Children = 267,
- XmlDataProvider_XmlSerializer = 268,
- }
-
- void InitAssemblies() {
- assemblies[0] = ResolveAssembly("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
- assemblies[1] = ResolveAssembly("System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
- assemblies[2] = ResolveAssembly("WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
- assemblies[3] = ResolveAssembly("PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
- assemblies[4] = ResolveAssembly("PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
- assemblies[5] = ResolveAssembly("System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
- }
-
- void InitTypes() {
-
- types[KnownTypes.AccessText] = InitType(assemblies[4], "System.Windows.Controls", "AccessText");
- types[KnownTypes.AdornedElementPlaceholder] = InitType(assemblies[4], "System.Windows.Controls", "AdornedElementPlaceholder");
- types[KnownTypes.Adorner] = InitType(assemblies[4], "System.Windows.Documents", "Adorner");
- types[KnownTypes.AdornerDecorator] = InitType(assemblies[4], "System.Windows.Documents", "AdornerDecorator");
- types[KnownTypes.AdornerLayer] = InitType(assemblies[4], "System.Windows.Documents", "AdornerLayer");
- types[KnownTypes.AffineTransform3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "AffineTransform3D");
- types[KnownTypes.AmbientLight] = InitType(assemblies[3], "System.Windows.Media.Media3D", "AmbientLight");
- types[KnownTypes.AnchoredBlock] = InitType(assemblies[4], "System.Windows.Documents", "AnchoredBlock");
- types[KnownTypes.Animatable] = InitType(assemblies[3], "System.Windows.Media.Animation", "Animatable");
- types[KnownTypes.AnimationClock] = InitType(assemblies[3], "System.Windows.Media.Animation", "AnimationClock");
- types[KnownTypes.AnimationTimeline] = InitType(assemblies[3], "System.Windows.Media.Animation", "AnimationTimeline");
- types[KnownTypes.Application] = InitType(assemblies[4], "System.Windows", "Application");
- types[KnownTypes.ArcSegment] = InitType(assemblies[3], "System.Windows.Media", "ArcSegment");
- types[KnownTypes.ArrayExtension] = InitType(assemblies[4], "System.Windows.Markup", "ArrayExtension");
- types[KnownTypes.AxisAngleRotation3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "AxisAngleRotation3D");
- types[KnownTypes.BaseIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "BaseIListConverter");
- types[KnownTypes.BeginStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "BeginStoryboard");
- types[KnownTypes.BevelBitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "BevelBitmapEffect");
- types[KnownTypes.BezierSegment] = InitType(assemblies[3], "System.Windows.Media", "BezierSegment");
- types[KnownTypes.Binding] = InitType(assemblies[4], "System.Windows.Data", "Binding");
- types[KnownTypes.BindingBase] = InitType(assemblies[4], "System.Windows.Data", "BindingBase");
- types[KnownTypes.BindingExpression] = InitType(assemblies[4], "System.Windows.Data", "BindingExpression");
- types[KnownTypes.BindingExpressionBase] = InitType(assemblies[4], "System.Windows.Data", "BindingExpressionBase");
- types[KnownTypes.BindingListCollectionView] = InitType(assemblies[4], "System.Windows.Data", "BindingListCollectionView");
- types[KnownTypes.BitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapDecoder");
- types[KnownTypes.BitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "BitmapEffect");
- types[KnownTypes.BitmapEffectCollection] = InitType(assemblies[3], "System.Windows.Media.Effects", "BitmapEffectCollection");
- types[KnownTypes.BitmapEffectGroup] = InitType(assemblies[3], "System.Windows.Media.Effects", "BitmapEffectGroup");
- types[KnownTypes.BitmapEffectInput] = InitType(assemblies[3], "System.Windows.Media.Effects", "BitmapEffectInput");
- types[KnownTypes.BitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapEncoder");
- types[KnownTypes.BitmapFrame] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapFrame");
- types[KnownTypes.BitmapImage] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapImage");
- types[KnownTypes.BitmapMetadata] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapMetadata");
- types[KnownTypes.BitmapPalette] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapPalette");
- types[KnownTypes.BitmapSource] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BitmapSource");
- types[KnownTypes.Block] = InitType(assemblies[4], "System.Windows.Documents", "Block");
- types[KnownTypes.BlockUIContainer] = InitType(assemblies[4], "System.Windows.Documents", "BlockUIContainer");
- types[KnownTypes.BlurBitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "BlurBitmapEffect");
- types[KnownTypes.BmpBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BmpBitmapDecoder");
- types[KnownTypes.BmpBitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "BmpBitmapEncoder");
- types[KnownTypes.Bold] = InitType(assemblies[4], "System.Windows.Documents", "Bold");
- types[KnownTypes.BoolIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "BoolIListConverter");
- types[KnownTypes.Boolean] = InitType(assemblies[0], "System", "Boolean");
- types[KnownTypes.BooleanAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "BooleanAnimationBase");
- types[KnownTypes.BooleanAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "BooleanAnimationUsingKeyFrames");
- types[KnownTypes.BooleanConverter] = InitType(assemblies[1], "System.ComponentModel", "BooleanConverter");
- types[KnownTypes.BooleanKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "BooleanKeyFrame");
- types[KnownTypes.BooleanKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "BooleanKeyFrameCollection");
- types[KnownTypes.BooleanToVisibilityConverter] = InitType(assemblies[4], "System.Windows.Controls", "BooleanToVisibilityConverter");
- types[KnownTypes.Border] = InitType(assemblies[4], "System.Windows.Controls", "Border");
- types[KnownTypes.BorderGapMaskConverter] = InitType(assemblies[4], "System.Windows.Controls", "BorderGapMaskConverter");
- types[KnownTypes.Brush] = InitType(assemblies[3], "System.Windows.Media", "Brush");
- types[KnownTypes.BrushConverter] = InitType(assemblies[3], "System.Windows.Media", "BrushConverter");
- types[KnownTypes.BulletDecorator] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "BulletDecorator");
- types[KnownTypes.Button] = InitType(assemblies[4], "System.Windows.Controls", "Button");
- types[KnownTypes.ButtonBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "ButtonBase");
- types[KnownTypes.Byte] = InitType(assemblies[0], "System", "Byte");
- types[KnownTypes.ByteAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "ByteAnimation");
- types[KnownTypes.ByteAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "ByteAnimationBase");
- types[KnownTypes.ByteAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "ByteAnimationUsingKeyFrames");
- types[KnownTypes.ByteConverter] = InitType(assemblies[1], "System.ComponentModel", "ByteConverter");
- types[KnownTypes.ByteKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "ByteKeyFrame");
- types[KnownTypes.ByteKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "ByteKeyFrameCollection");
- types[KnownTypes.CachedBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "CachedBitmap");
- types[KnownTypes.Camera] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Camera");
- types[KnownTypes.Canvas] = InitType(assemblies[4], "System.Windows.Controls", "Canvas");
- types[KnownTypes.Char] = InitType(assemblies[0], "System", "Char");
- types[KnownTypes.CharAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "CharAnimationBase");
- types[KnownTypes.CharAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "CharAnimationUsingKeyFrames");
- types[KnownTypes.CharConverter] = InitType(assemblies[1], "System.ComponentModel", "CharConverter");
- types[KnownTypes.CharIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "CharIListConverter");
- types[KnownTypes.CharKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "CharKeyFrame");
- types[KnownTypes.CharKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "CharKeyFrameCollection");
- types[KnownTypes.CheckBox] = InitType(assemblies[4], "System.Windows.Controls", "CheckBox");
- types[KnownTypes.Clock] = InitType(assemblies[3], "System.Windows.Media.Animation", "Clock");
- types[KnownTypes.ClockController] = InitType(assemblies[3], "System.Windows.Media.Animation", "ClockController");
- types[KnownTypes.ClockGroup] = InitType(assemblies[3], "System.Windows.Media.Animation", "ClockGroup");
- types[KnownTypes.CollectionContainer] = InitType(assemblies[4], "System.Windows.Data", "CollectionContainer");
- types[KnownTypes.CollectionView] = InitType(assemblies[4], "System.Windows.Data", "CollectionView");
- types[KnownTypes.CollectionViewSource] = InitType(assemblies[4], "System.Windows.Data", "CollectionViewSource");
- types[KnownTypes.Color] = InitType(assemblies[3], "System.Windows.Media", "Color");
- types[KnownTypes.ColorAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "ColorAnimation");
- types[KnownTypes.ColorAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "ColorAnimationBase");
- types[KnownTypes.ColorAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "ColorAnimationUsingKeyFrames");
- types[KnownTypes.ColorConvertedBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "ColorConvertedBitmap");
- types[KnownTypes.ColorConvertedBitmapExtension] = InitType(assemblies[4], "System.Windows", "ColorConvertedBitmapExtension");
- types[KnownTypes.ColorConverter] = InitType(assemblies[3], "System.Windows.Media", "ColorConverter");
- types[KnownTypes.ColorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "ColorKeyFrame");
- types[KnownTypes.ColorKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "ColorKeyFrameCollection");
- types[KnownTypes.ColumnDefinition] = InitType(assemblies[4], "System.Windows.Controls", "ColumnDefinition");
- types[KnownTypes.CombinedGeometry] = InitType(assemblies[3], "System.Windows.Media", "CombinedGeometry");
- types[KnownTypes.ComboBox] = InitType(assemblies[4], "System.Windows.Controls", "ComboBox");
- types[KnownTypes.ComboBoxItem] = InitType(assemblies[4], "System.Windows.Controls", "ComboBoxItem");
- types[KnownTypes.CommandConverter] = InitType(assemblies[4], "System.Windows.Input", "CommandConverter");
- types[KnownTypes.ComponentResourceKey] = InitType(assemblies[4], "System.Windows", "ComponentResourceKey");
- types[KnownTypes.ComponentResourceKeyConverter] = InitType(assemblies[4], "System.Windows.Markup", "ComponentResourceKeyConverter");
- types[KnownTypes.CompositionTarget] = InitType(assemblies[3], "System.Windows.Media", "CompositionTarget");
- types[KnownTypes.Condition] = InitType(assemblies[4], "System.Windows", "Condition");
- types[KnownTypes.ContainerVisual] = InitType(assemblies[3], "System.Windows.Media", "ContainerVisual");
- types[KnownTypes.ContentControl] = InitType(assemblies[4], "System.Windows.Controls", "ContentControl");
- types[KnownTypes.ContentElement] = InitType(assemblies[3], "System.Windows", "ContentElement");
- types[KnownTypes.ContentPresenter] = InitType(assemblies[4], "System.Windows.Controls", "ContentPresenter");
- types[KnownTypes.ContentPropertyAttribute] = InitType(assemblies[2], "System.Windows.Markup", "ContentPropertyAttribute");
- types[KnownTypes.ContentWrapperAttribute] = InitType(assemblies[2], "System.Windows.Markup", "ContentWrapperAttribute");
- types[KnownTypes.ContextMenu] = InitType(assemblies[4], "System.Windows.Controls", "ContextMenu");
- types[KnownTypes.ContextMenuService] = InitType(assemblies[4], "System.Windows.Controls", "ContextMenuService");
- types[KnownTypes.Control] = InitType(assemblies[4], "System.Windows.Controls", "Control");
- types[KnownTypes.ControlTemplate] = InitType(assemblies[4], "System.Windows.Controls", "ControlTemplate");
- types[KnownTypes.ControllableStoryboardAction] = InitType(assemblies[4], "System.Windows.Media.Animation", "ControllableStoryboardAction");
- types[KnownTypes.CornerRadius] = InitType(assemblies[4], "System.Windows", "CornerRadius");
- types[KnownTypes.CornerRadiusConverter] = InitType(assemblies[4], "System.Windows", "CornerRadiusConverter");
- types[KnownTypes.CroppedBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "CroppedBitmap");
- types[KnownTypes.CultureInfo] = InitType(assemblies[0], "System.Globalization", "CultureInfo");
- types[KnownTypes.CultureInfoConverter] = InitType(assemblies[1], "System.ComponentModel", "CultureInfoConverter");
- types[KnownTypes.CultureInfoIetfLanguageTagConverter] = InitType(assemblies[3], "System.Windows", "CultureInfoIetfLanguageTagConverter");
- types[KnownTypes.Cursor] = InitType(assemblies[3], "System.Windows.Input", "Cursor");
- types[KnownTypes.CursorConverter] = InitType(assemblies[3], "System.Windows.Input", "CursorConverter");
- types[KnownTypes.DashStyle] = InitType(assemblies[3], "System.Windows.Media", "DashStyle");
- types[KnownTypes.DataChangedEventManager] = InitType(assemblies[4], "System.Windows.Data", "DataChangedEventManager");
- types[KnownTypes.DataTemplate] = InitType(assemblies[4], "System.Windows", "DataTemplate");
- types[KnownTypes.DataTemplateKey] = InitType(assemblies[4], "System.Windows", "DataTemplateKey");
- types[KnownTypes.DataTrigger] = InitType(assemblies[4], "System.Windows", "DataTrigger");
- types[KnownTypes.DateTime] = InitType(assemblies[0], "System", "DateTime");
- types[KnownTypes.DateTimeConverter] = InitType(assemblies[1], "System.ComponentModel", "DateTimeConverter");
- types[KnownTypes.DateTimeConverter2] = InitType(assemblies[2], "System.Windows.Markup", "DateTimeConverter2");
- types[KnownTypes.Decimal] = InitType(assemblies[0], "System", "Decimal");
- types[KnownTypes.DecimalAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalAnimation");
- types[KnownTypes.DecimalAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalAnimationBase");
- types[KnownTypes.DecimalAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalAnimationUsingKeyFrames");
- types[KnownTypes.DecimalConverter] = InitType(assemblies[1], "System.ComponentModel", "DecimalConverter");
- types[KnownTypes.DecimalKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalKeyFrame");
- types[KnownTypes.DecimalKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalKeyFrameCollection");
- types[KnownTypes.Decorator] = InitType(assemblies[4], "System.Windows.Controls", "Decorator");
- types[KnownTypes.DefinitionBase] = InitType(assemblies[4], "System.Windows.Controls", "DefinitionBase");
- types[KnownTypes.DependencyObject] = InitType(assemblies[2], "System.Windows", "DependencyObject");
- types[KnownTypes.DependencyProperty] = InitType(assemblies[2], "System.Windows", "DependencyProperty");
- types[KnownTypes.DependencyPropertyConverter] = InitType(assemblies[4], "System.Windows.Markup", "DependencyPropertyConverter");
- types[KnownTypes.DialogResultConverter] = InitType(assemblies[4], "System.Windows", "DialogResultConverter");
- types[KnownTypes.DiffuseMaterial] = InitType(assemblies[3], "System.Windows.Media.Media3D", "DiffuseMaterial");
- types[KnownTypes.DirectionalLight] = InitType(assemblies[3], "System.Windows.Media.Media3D", "DirectionalLight");
- types[KnownTypes.DiscreteBooleanKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteBooleanKeyFrame");
- types[KnownTypes.DiscreteByteKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteByteKeyFrame");
- types[KnownTypes.DiscreteCharKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteCharKeyFrame");
- types[KnownTypes.DiscreteColorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteColorKeyFrame");
- types[KnownTypes.DiscreteDecimalKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteDecimalKeyFrame");
- types[KnownTypes.DiscreteDoubleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteDoubleKeyFrame");
- types[KnownTypes.DiscreteInt16KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteInt16KeyFrame");
- types[KnownTypes.DiscreteInt32KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteInt32KeyFrame");
- types[KnownTypes.DiscreteInt64KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteInt64KeyFrame");
- types[KnownTypes.DiscreteMatrixKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteMatrixKeyFrame");
- types[KnownTypes.DiscreteObjectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteObjectKeyFrame");
- types[KnownTypes.DiscretePoint3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscretePoint3DKeyFrame");
- types[KnownTypes.DiscretePointKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscretePointKeyFrame");
- types[KnownTypes.DiscreteQuaternionKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteQuaternionKeyFrame");
- types[KnownTypes.DiscreteRectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteRectKeyFrame");
- types[KnownTypes.DiscreteRotation3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteRotation3DKeyFrame");
- types[KnownTypes.DiscreteSingleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteSingleKeyFrame");
- types[KnownTypes.DiscreteSizeKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteSizeKeyFrame");
- types[KnownTypes.DiscreteStringKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteStringKeyFrame");
- types[KnownTypes.DiscreteThicknessKeyFrame] = InitType(assemblies[4], "System.Windows.Media.Animation", "DiscreteThicknessKeyFrame");
- types[KnownTypes.DiscreteVector3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteVector3DKeyFrame");
- types[KnownTypes.DiscreteVectorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DiscreteVectorKeyFrame");
- types[KnownTypes.DockPanel] = InitType(assemblies[4], "System.Windows.Controls", "DockPanel");
- types[KnownTypes.DocumentPageView] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "DocumentPageView");
- types[KnownTypes.DocumentReference] = InitType(assemblies[4], "System.Windows.Documents", "DocumentReference");
- types[KnownTypes.DocumentViewer] = InitType(assemblies[4], "System.Windows.Controls", "DocumentViewer");
- types[KnownTypes.DocumentViewerBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "DocumentViewerBase");
- types[KnownTypes.Double] = InitType(assemblies[0], "System", "Double");
- types[KnownTypes.DoubleAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleAnimation");
- types[KnownTypes.DoubleAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleAnimationBase");
- types[KnownTypes.DoubleAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleAnimationUsingKeyFrames");
- types[KnownTypes.DoubleAnimationUsingPath] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleAnimationUsingPath");
- types[KnownTypes.DoubleCollection] = InitType(assemblies[3], "System.Windows.Media", "DoubleCollection");
- types[KnownTypes.DoubleCollectionConverter] = InitType(assemblies[3], "System.Windows.Media", "DoubleCollectionConverter");
- types[KnownTypes.DoubleConverter] = InitType(assemblies[1], "System.ComponentModel", "DoubleConverter");
- types[KnownTypes.DoubleIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "DoubleIListConverter");
- types[KnownTypes.DoubleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleKeyFrame");
- types[KnownTypes.DoubleKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleKeyFrameCollection");
- types[KnownTypes.Drawing] = InitType(assemblies[3], "System.Windows.Media", "Drawing");
- types[KnownTypes.DrawingBrush] = InitType(assemblies[3], "System.Windows.Media", "DrawingBrush");
- types[KnownTypes.DrawingCollection] = InitType(assemblies[3], "System.Windows.Media", "DrawingCollection");
- types[KnownTypes.DrawingContext] = InitType(assemblies[3], "System.Windows.Media", "DrawingContext");
- types[KnownTypes.DrawingGroup] = InitType(assemblies[3], "System.Windows.Media", "DrawingGroup");
- types[KnownTypes.DrawingImage] = InitType(assemblies[3], "System.Windows.Media", "DrawingImage");
- types[KnownTypes.DrawingVisual] = InitType(assemblies[3], "System.Windows.Media", "DrawingVisual");
- types[KnownTypes.DropShadowBitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "DropShadowBitmapEffect");
- types[KnownTypes.Duration] = InitType(assemblies[3], "System.Windows", "Duration");
- types[KnownTypes.DurationConverter] = InitType(assemblies[3], "System.Windows", "DurationConverter");
- types[KnownTypes.DynamicResourceExtension] = InitType(assemblies[4], "System.Windows", "DynamicResourceExtension");
- types[KnownTypes.DynamicResourceExtensionConverter] = InitType(assemblies[4], "System.Windows", "DynamicResourceExtensionConverter");
- types[KnownTypes.Ellipse] = InitType(assemblies[4], "System.Windows.Shapes", "Ellipse");
- types[KnownTypes.EllipseGeometry] = InitType(assemblies[3], "System.Windows.Media", "EllipseGeometry");
- types[KnownTypes.EmbossBitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "EmbossBitmapEffect");
- types[KnownTypes.EmissiveMaterial] = InitType(assemblies[3], "System.Windows.Media.Media3D", "EmissiveMaterial");
- types[KnownTypes.EnumConverter] = InitType(assemblies[1], "System.ComponentModel", "EnumConverter");
- types[KnownTypes.EventManager] = InitType(assemblies[3], "System.Windows", "EventManager");
- types[KnownTypes.EventSetter] = InitType(assemblies[4], "System.Windows", "EventSetter");
- types[KnownTypes.EventTrigger] = InitType(assemblies[4], "System.Windows", "EventTrigger");
- types[KnownTypes.Expander] = InitType(assemblies[4], "System.Windows.Controls", "Expander");
- types[KnownTypes.Expression] = InitType(assemblies[2], "System.Windows", "Expression");
- types[KnownTypes.ExpressionConverter] = InitType(assemblies[2], "System.Windows", "ExpressionConverter");
- types[KnownTypes.Figure] = InitType(assemblies[4], "System.Windows.Documents", "Figure");
- types[KnownTypes.FigureLength] = InitType(assemblies[4], "System.Windows", "FigureLength");
- types[KnownTypes.FigureLengthConverter] = InitType(assemblies[4], "System.Windows", "FigureLengthConverter");
- types[KnownTypes.FixedDocument] = InitType(assemblies[4], "System.Windows.Documents", "FixedDocument");
- types[KnownTypes.FixedDocumentSequence] = InitType(assemblies[4], "System.Windows.Documents", "FixedDocumentSequence");
- types[KnownTypes.FixedPage] = InitType(assemblies[4], "System.Windows.Documents", "FixedPage");
- types[KnownTypes.Floater] = InitType(assemblies[4], "System.Windows.Documents", "Floater");
- types[KnownTypes.FlowDocument] = InitType(assemblies[4], "System.Windows.Documents", "FlowDocument");
- types[KnownTypes.FlowDocumentPageViewer] = InitType(assemblies[4], "System.Windows.Controls", "FlowDocumentPageViewer");
- types[KnownTypes.FlowDocumentReader] = InitType(assemblies[4], "System.Windows.Controls", "FlowDocumentReader");
- types[KnownTypes.FlowDocumentScrollViewer] = InitType(assemblies[4], "System.Windows.Controls", "FlowDocumentScrollViewer");
- types[KnownTypes.FocusManager] = InitType(assemblies[3], "System.Windows.Input", "FocusManager");
- types[KnownTypes.FontFamily] = InitType(assemblies[3], "System.Windows.Media", "FontFamily");
- types[KnownTypes.FontFamilyConverter] = InitType(assemblies[3], "System.Windows.Media", "FontFamilyConverter");
- types[KnownTypes.FontSizeConverter] = InitType(assemblies[4], "System.Windows", "FontSizeConverter");
- types[KnownTypes.FontStretch] = InitType(assemblies[3], "System.Windows", "FontStretch");
- types[KnownTypes.FontStretchConverter] = InitType(assemblies[3], "System.Windows", "FontStretchConverter");
- types[KnownTypes.FontStyle] = InitType(assemblies[3], "System.Windows", "FontStyle");
- types[KnownTypes.FontStyleConverter] = InitType(assemblies[3], "System.Windows", "FontStyleConverter");
- types[KnownTypes.FontWeight] = InitType(assemblies[3], "System.Windows", "FontWeight");
- types[KnownTypes.FontWeightConverter] = InitType(assemblies[3], "System.Windows", "FontWeightConverter");
- types[KnownTypes.FormatConvertedBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "FormatConvertedBitmap");
- types[KnownTypes.Frame] = InitType(assemblies[4], "System.Windows.Controls", "Frame");
- types[KnownTypes.FrameworkContentElement] = InitType(assemblies[4], "System.Windows", "FrameworkContentElement");
- types[KnownTypes.FrameworkElement] = InitType(assemblies[4], "System.Windows", "FrameworkElement");
- types[KnownTypes.FrameworkElementFactory] = InitType(assemblies[4], "System.Windows", "FrameworkElementFactory");
- types[KnownTypes.FrameworkPropertyMetadata] = InitType(assemblies[4], "System.Windows", "FrameworkPropertyMetadata");
- types[KnownTypes.FrameworkPropertyMetadataOptions] = InitType(assemblies[4], "System.Windows", "FrameworkPropertyMetadataOptions");
- types[KnownTypes.FrameworkRichTextComposition] = InitType(assemblies[4], "System.Windows.Documents", "FrameworkRichTextComposition");
- types[KnownTypes.FrameworkTemplate] = InitType(assemblies[4], "System.Windows", "FrameworkTemplate");
- types[KnownTypes.FrameworkTextComposition] = InitType(assemblies[4], "System.Windows.Documents", "FrameworkTextComposition");
- types[KnownTypes.Freezable] = InitType(assemblies[2], "System.Windows", "Freezable");
- types[KnownTypes.GeneralTransform] = InitType(assemblies[3], "System.Windows.Media", "GeneralTransform");
- types[KnownTypes.GeneralTransformCollection] = InitType(assemblies[3], "System.Windows.Media", "GeneralTransformCollection");
- types[KnownTypes.GeneralTransformGroup] = InitType(assemblies[3], "System.Windows.Media", "GeneralTransformGroup");
- types[KnownTypes.Geometry] = InitType(assemblies[3], "System.Windows.Media", "Geometry");
- types[KnownTypes.Geometry3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Geometry3D");
- types[KnownTypes.GeometryCollection] = InitType(assemblies[3], "System.Windows.Media", "GeometryCollection");
- types[KnownTypes.GeometryConverter] = InitType(assemblies[3], "System.Windows.Media", "GeometryConverter");
- types[KnownTypes.GeometryDrawing] = InitType(assemblies[3], "System.Windows.Media", "GeometryDrawing");
- types[KnownTypes.GeometryGroup] = InitType(assemblies[3], "System.Windows.Media", "GeometryGroup");
- types[KnownTypes.GeometryModel3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "GeometryModel3D");
- types[KnownTypes.GestureRecognizer] = InitType(assemblies[3], "System.Windows.Ink", "GestureRecognizer");
- types[KnownTypes.GifBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "GifBitmapDecoder");
- types[KnownTypes.GifBitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "GifBitmapEncoder");
- types[KnownTypes.GlyphRun] = InitType(assemblies[3], "System.Windows.Media", "GlyphRun");
- types[KnownTypes.GlyphRunDrawing] = InitType(assemblies[3], "System.Windows.Media", "GlyphRunDrawing");
- types[KnownTypes.GlyphTypeface] = InitType(assemblies[3], "System.Windows.Media", "GlyphTypeface");
- types[KnownTypes.Glyphs] = InitType(assemblies[4], "System.Windows.Documents", "Glyphs");
- types[KnownTypes.GradientBrush] = InitType(assemblies[3], "System.Windows.Media", "GradientBrush");
- types[KnownTypes.GradientStop] = InitType(assemblies[3], "System.Windows.Media", "GradientStop");
- types[KnownTypes.GradientStopCollection] = InitType(assemblies[3], "System.Windows.Media", "GradientStopCollection");
- types[KnownTypes.Grid] = InitType(assemblies[4], "System.Windows.Controls", "Grid");
- types[KnownTypes.GridLength] = InitType(assemblies[4], "System.Windows", "GridLength");
- types[KnownTypes.GridLengthConverter] = InitType(assemblies[4], "System.Windows", "GridLengthConverter");
- types[KnownTypes.GridSplitter] = InitType(assemblies[4], "System.Windows.Controls", "GridSplitter");
- types[KnownTypes.GridView] = InitType(assemblies[4], "System.Windows.Controls", "GridView");
- types[KnownTypes.GridViewColumn] = InitType(assemblies[4], "System.Windows.Controls", "GridViewColumn");
- types[KnownTypes.GridViewColumnHeader] = InitType(assemblies[4], "System.Windows.Controls", "GridViewColumnHeader");
- types[KnownTypes.GridViewHeaderRowPresenter] = InitType(assemblies[4], "System.Windows.Controls", "GridViewHeaderRowPresenter");
- types[KnownTypes.GridViewRowPresenter] = InitType(assemblies[4], "System.Windows.Controls", "GridViewRowPresenter");
- types[KnownTypes.GridViewRowPresenterBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "GridViewRowPresenterBase");
- types[KnownTypes.GroupBox] = InitType(assemblies[4], "System.Windows.Controls", "GroupBox");
- types[KnownTypes.GroupItem] = InitType(assemblies[4], "System.Windows.Controls", "GroupItem");
- types[KnownTypes.Guid] = InitType(assemblies[0], "System", "Guid");
- types[KnownTypes.GuidConverter] = InitType(assemblies[1], "System.ComponentModel", "GuidConverter");
- types[KnownTypes.GuidelineSet] = InitType(assemblies[3], "System.Windows.Media", "GuidelineSet");
- types[KnownTypes.HeaderedContentControl] = InitType(assemblies[4], "System.Windows.Controls", "HeaderedContentControl");
- types[KnownTypes.HeaderedItemsControl] = InitType(assemblies[4], "System.Windows.Controls", "HeaderedItemsControl");
- types[KnownTypes.HierarchicalDataTemplate] = InitType(assemblies[4], "System.Windows", "HierarchicalDataTemplate");
- types[KnownTypes.HostVisual] = InitType(assemblies[3], "System.Windows.Media", "HostVisual");
- types[KnownTypes.Hyperlink] = InitType(assemblies[4], "System.Windows.Documents", "Hyperlink");
- types[KnownTypes.IAddChild] = InitType(assemblies[3], "System.Windows.Markup", "IAddChild");
- types[KnownTypes.IAddChildInternal] = InitType(assemblies[3], "System.Windows.Markup", "IAddChildInternal");
- types[KnownTypes.ICommand] = InitType(assemblies[3], "System.Windows.Input", "ICommand");
- types[KnownTypes.IComponentConnector] = InitType(assemblies[2], "System.Windows.Markup", "IComponentConnector");
- types[KnownTypes.INameScope] = InitType(assemblies[2], "System.Windows.Markup", "INameScope");
- types[KnownTypes.IStyleConnector] = InitType(assemblies[4], "System.Windows.Markup", "IStyleConnector");
- types[KnownTypes.IconBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "IconBitmapDecoder");
- types[KnownTypes.Image] = InitType(assemblies[4], "System.Windows.Controls", "Image");
- types[KnownTypes.ImageBrush] = InitType(assemblies[3], "System.Windows.Media", "ImageBrush");
- types[KnownTypes.ImageDrawing] = InitType(assemblies[3], "System.Windows.Media", "ImageDrawing");
- types[KnownTypes.ImageMetadata] = InitType(assemblies[3], "System.Windows.Media", "ImageMetadata");
- types[KnownTypes.ImageSource] = InitType(assemblies[3], "System.Windows.Media", "ImageSource");
- types[KnownTypes.ImageSourceConverter] = InitType(assemblies[3], "System.Windows.Media", "ImageSourceConverter");
- types[KnownTypes.InPlaceBitmapMetadataWriter] = InitType(assemblies[3], "System.Windows.Media.Imaging", "InPlaceBitmapMetadataWriter");
- types[KnownTypes.InkCanvas] = InitType(assemblies[4], "System.Windows.Controls", "InkCanvas");
- types[KnownTypes.InkPresenter] = InitType(assemblies[4], "System.Windows.Controls", "InkPresenter");
- types[KnownTypes.Inline] = InitType(assemblies[4], "System.Windows.Documents", "Inline");
- types[KnownTypes.InlineCollection] = InitType(assemblies[4], "System.Windows.Documents", "InlineCollection");
- types[KnownTypes.InlineUIContainer] = InitType(assemblies[4], "System.Windows.Documents", "InlineUIContainer");
- types[KnownTypes.InputBinding] = InitType(assemblies[3], "System.Windows.Input", "InputBinding");
- types[KnownTypes.InputDevice] = InitType(assemblies[3], "System.Windows.Input", "InputDevice");
- types[KnownTypes.InputLanguageManager] = InitType(assemblies[3], "System.Windows.Input", "InputLanguageManager");
- types[KnownTypes.InputManager] = InitType(assemblies[3], "System.Windows.Input", "InputManager");
- types[KnownTypes.InputMethod] = InitType(assemblies[3], "System.Windows.Input", "InputMethod");
- types[KnownTypes.InputScope] = InitType(assemblies[3], "System.Windows.Input", "InputScope");
- types[KnownTypes.InputScopeConverter] = InitType(assemblies[3], "System.Windows.Input", "InputScopeConverter");
- types[KnownTypes.InputScopeName] = InitType(assemblies[3], "System.Windows.Input", "InputScopeName");
- types[KnownTypes.InputScopeNameConverter] = InitType(assemblies[3], "System.Windows.Input", "InputScopeNameConverter");
- types[KnownTypes.Int16] = InitType(assemblies[0], "System", "Int16");
- types[KnownTypes.Int16Animation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int16Animation");
- types[KnownTypes.Int16AnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int16AnimationBase");
- types[KnownTypes.Int16AnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int16AnimationUsingKeyFrames");
- types[KnownTypes.Int16Converter] = InitType(assemblies[1], "System.ComponentModel", "Int16Converter");
- types[KnownTypes.Int16KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int16KeyFrame");
- types[KnownTypes.Int16KeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int16KeyFrameCollection");
- types[KnownTypes.Int32] = InitType(assemblies[0], "System", "Int32");
- types[KnownTypes.Int32Animation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int32Animation");
- types[KnownTypes.Int32AnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int32AnimationBase");
- types[KnownTypes.Int32AnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int32AnimationUsingKeyFrames");
- types[KnownTypes.Int32Collection] = InitType(assemblies[3], "System.Windows.Media", "Int32Collection");
- types[KnownTypes.Int32CollectionConverter] = InitType(assemblies[3], "System.Windows.Media", "Int32CollectionConverter");
- types[KnownTypes.Int32Converter] = InitType(assemblies[1], "System.ComponentModel", "Int32Converter");
- types[KnownTypes.Int32KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int32KeyFrame");
- types[KnownTypes.Int32KeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int32KeyFrameCollection");
- types[KnownTypes.Int32Rect] = InitType(assemblies[2], "System.Windows", "Int32Rect");
- types[KnownTypes.Int32RectConverter] = InitType(assemblies[2], "System.Windows", "Int32RectConverter");
- types[KnownTypes.Int64] = InitType(assemblies[0], "System", "Int64");
- types[KnownTypes.Int64Animation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int64Animation");
- types[KnownTypes.Int64AnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int64AnimationBase");
- types[KnownTypes.Int64AnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int64AnimationUsingKeyFrames");
- types[KnownTypes.Int64Converter] = InitType(assemblies[1], "System.ComponentModel", "Int64Converter");
- types[KnownTypes.Int64KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int64KeyFrame");
- types[KnownTypes.Int64KeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Int64KeyFrameCollection");
- types[KnownTypes.Italic] = InitType(assemblies[4], "System.Windows.Documents", "Italic");
- types[KnownTypes.ItemCollection] = InitType(assemblies[4], "System.Windows.Controls", "ItemCollection");
- types[KnownTypes.ItemsControl] = InitType(assemblies[4], "System.Windows.Controls", "ItemsControl");
- types[KnownTypes.ItemsPanelTemplate] = InitType(assemblies[4], "System.Windows.Controls", "ItemsPanelTemplate");
- types[KnownTypes.ItemsPresenter] = InitType(assemblies[4], "System.Windows.Controls", "ItemsPresenter");
- types[KnownTypes.JournalEntry] = InitType(assemblies[4], "System.Windows.Navigation", "JournalEntry");
- types[KnownTypes.JournalEntryListConverter] = InitType(assemblies[4], "System.Windows.Navigation", "JournalEntryListConverter");
- types[KnownTypes.JournalEntryUnifiedViewConverter] = InitType(assemblies[4], "System.Windows.Navigation", "JournalEntryUnifiedViewConverter");
- types[KnownTypes.JpegBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "JpegBitmapDecoder");
- types[KnownTypes.JpegBitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "JpegBitmapEncoder");
- types[KnownTypes.KeyBinding] = InitType(assemblies[3], "System.Windows.Input", "KeyBinding");
- types[KnownTypes.KeyConverter] = InitType(assemblies[2], "System.Windows.Input", "KeyConverter");
- types[KnownTypes.KeyGesture] = InitType(assemblies[3], "System.Windows.Input", "KeyGesture");
- types[KnownTypes.KeyGestureConverter] = InitType(assemblies[3], "System.Windows.Input", "KeyGestureConverter");
- types[KnownTypes.KeySpline] = InitType(assemblies[3], "System.Windows.Media.Animation", "KeySpline");
- types[KnownTypes.KeySplineConverter] = InitType(assemblies[3], "System.Windows", "KeySplineConverter");
- types[KnownTypes.KeyTime] = InitType(assemblies[3], "System.Windows.Media.Animation", "KeyTime");
- types[KnownTypes.KeyTimeConverter] = InitType(assemblies[3], "System.Windows", "KeyTimeConverter");
- types[KnownTypes.KeyboardDevice] = InitType(assemblies[3], "System.Windows.Input", "KeyboardDevice");
- types[KnownTypes.Label] = InitType(assemblies[4], "System.Windows.Controls", "Label");
- types[KnownTypes.LateBoundBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "LateBoundBitmapDecoder");
- types[KnownTypes.LengthConverter] = InitType(assemblies[4], "System.Windows", "LengthConverter");
- types[KnownTypes.Light] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Light");
- types[KnownTypes.Line] = InitType(assemblies[4], "System.Windows.Shapes", "Line");
- types[KnownTypes.LineBreak] = InitType(assemblies[4], "System.Windows.Documents", "LineBreak");
- types[KnownTypes.LineGeometry] = InitType(assemblies[3], "System.Windows.Media", "LineGeometry");
- types[KnownTypes.LineSegment] = InitType(assemblies[3], "System.Windows.Media", "LineSegment");
- types[KnownTypes.LinearByteKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearByteKeyFrame");
- types[KnownTypes.LinearColorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearColorKeyFrame");
- types[KnownTypes.LinearDecimalKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearDecimalKeyFrame");
- types[KnownTypes.LinearDoubleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearDoubleKeyFrame");
- types[KnownTypes.LinearGradientBrush] = InitType(assemblies[3], "System.Windows.Media", "LinearGradientBrush");
- types[KnownTypes.LinearInt16KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearInt16KeyFrame");
- types[KnownTypes.LinearInt32KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearInt32KeyFrame");
- types[KnownTypes.LinearInt64KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearInt64KeyFrame");
- types[KnownTypes.LinearPoint3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearPoint3DKeyFrame");
- types[KnownTypes.LinearPointKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearPointKeyFrame");
- types[KnownTypes.LinearQuaternionKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearQuaternionKeyFrame");
- types[KnownTypes.LinearRectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearRectKeyFrame");
- types[KnownTypes.LinearRotation3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearRotation3DKeyFrame");
- types[KnownTypes.LinearSingleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearSingleKeyFrame");
- types[KnownTypes.LinearSizeKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearSizeKeyFrame");
- types[KnownTypes.LinearThicknessKeyFrame] = InitType(assemblies[4], "System.Windows.Media.Animation", "LinearThicknessKeyFrame");
- types[KnownTypes.LinearVector3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearVector3DKeyFrame");
- types[KnownTypes.LinearVectorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "LinearVectorKeyFrame");
- types[KnownTypes.List] = InitType(assemblies[4], "System.Windows.Documents", "List");
- types[KnownTypes.ListBox] = InitType(assemblies[4], "System.Windows.Controls", "ListBox");
- types[KnownTypes.ListBoxItem] = InitType(assemblies[4], "System.Windows.Controls", "ListBoxItem");
- types[KnownTypes.ListCollectionView] = InitType(assemblies[4], "System.Windows.Data", "ListCollectionView");
- types[KnownTypes.ListItem] = InitType(assemblies[4], "System.Windows.Documents", "ListItem");
- types[KnownTypes.ListView] = InitType(assemblies[4], "System.Windows.Controls", "ListView");
- types[KnownTypes.ListViewItem] = InitType(assemblies[4], "System.Windows.Controls", "ListViewItem");
- types[KnownTypes.Localization] = InitType(assemblies[4], "System.Windows", "Localization");
- types[KnownTypes.LostFocusEventManager] = InitType(assemblies[4], "System.Windows", "LostFocusEventManager");
- types[KnownTypes.MarkupExtension] = InitType(assemblies[2], "System.Windows.Markup", "MarkupExtension");
- types[KnownTypes.Material] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Material");
- types[KnownTypes.MaterialCollection] = InitType(assemblies[3], "System.Windows.Media.Media3D", "MaterialCollection");
- types[KnownTypes.MaterialGroup] = InitType(assemblies[3], "System.Windows.Media.Media3D", "MaterialGroup");
- types[KnownTypes.Matrix] = InitType(assemblies[2], "System.Windows.Media", "Matrix");
- types[KnownTypes.Matrix3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Matrix3D");
- types[KnownTypes.Matrix3DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Matrix3DConverter");
- types[KnownTypes.MatrixAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixAnimationBase");
- types[KnownTypes.MatrixAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixAnimationUsingKeyFrames");
- types[KnownTypes.MatrixAnimationUsingPath] = InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixAnimationUsingPath");
- types[KnownTypes.MatrixCamera] = InitType(assemblies[3], "System.Windows.Media.Media3D", "MatrixCamera");
- types[KnownTypes.MatrixConverter] = InitType(assemblies[2], "System.Windows.Media", "MatrixConverter");
- types[KnownTypes.MatrixKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixKeyFrame");
- types[KnownTypes.MatrixKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixKeyFrameCollection");
- types[KnownTypes.MatrixTransform] = InitType(assemblies[3], "System.Windows.Media", "MatrixTransform");
- types[KnownTypes.MatrixTransform3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "MatrixTransform3D");
- types[KnownTypes.MediaClock] = InitType(assemblies[3], "System.Windows.Media", "MediaClock");
- types[KnownTypes.MediaElement] = InitType(assemblies[4], "System.Windows.Controls", "MediaElement");
- types[KnownTypes.MediaPlayer] = InitType(assemblies[3], "System.Windows.Media", "MediaPlayer");
- types[KnownTypes.MediaTimeline] = InitType(assemblies[3], "System.Windows.Media", "MediaTimeline");
- types[KnownTypes.Menu] = InitType(assemblies[4], "System.Windows.Controls", "Menu");
- types[KnownTypes.MenuBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "MenuBase");
- types[KnownTypes.MenuItem] = InitType(assemblies[4], "System.Windows.Controls", "MenuItem");
- types[KnownTypes.MenuScrollingVisibilityConverter] = InitType(assemblies[4], "System.Windows.Controls", "MenuScrollingVisibilityConverter");
- types[KnownTypes.MeshGeometry3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "MeshGeometry3D");
- types[KnownTypes.Model3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Model3D");
- types[KnownTypes.Model3DCollection] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Model3DCollection");
- types[KnownTypes.Model3DGroup] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Model3DGroup");
- types[KnownTypes.ModelVisual3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "ModelVisual3D");
- types[KnownTypes.ModifierKeysConverter] = InitType(assemblies[2], "System.Windows.Input", "ModifierKeysConverter");
- types[KnownTypes.MouseActionConverter] = InitType(assemblies[3], "System.Windows.Input", "MouseActionConverter");
- types[KnownTypes.MouseBinding] = InitType(assemblies[3], "System.Windows.Input", "MouseBinding");
- types[KnownTypes.MouseDevice] = InitType(assemblies[3], "System.Windows.Input", "MouseDevice");
- types[KnownTypes.MouseGesture] = InitType(assemblies[3], "System.Windows.Input", "MouseGesture");
- types[KnownTypes.MouseGestureConverter] = InitType(assemblies[3], "System.Windows.Input", "MouseGestureConverter");
- types[KnownTypes.MultiBinding] = InitType(assemblies[4], "System.Windows.Data", "MultiBinding");
- types[KnownTypes.MultiBindingExpression] = InitType(assemblies[4], "System.Windows.Data", "MultiBindingExpression");
- types[KnownTypes.MultiDataTrigger] = InitType(assemblies[4], "System.Windows", "MultiDataTrigger");
- types[KnownTypes.MultiTrigger] = InitType(assemblies[4], "System.Windows", "MultiTrigger");
- types[KnownTypes.NameScope] = InitType(assemblies[4], "System.Windows", "NameScope");
- types[KnownTypes.NavigationWindow] = InitType(assemblies[4], "System.Windows.Navigation", "NavigationWindow");
- types[KnownTypes.NullExtension] = InitType(assemblies[4], "System.Windows.Markup", "NullExtension");
- types[KnownTypes.NullableBoolConverter] = InitType(assemblies[4], "System.Windows", "NullableBoolConverter");
- types[KnownTypes.NullableConverter] = InitType(assemblies[1], "System.ComponentModel", "NullableConverter");
- types[KnownTypes.NumberSubstitution] = InitType(assemblies[3], "System.Windows.Media", "NumberSubstitution");
- types[KnownTypes.Object] = InitType(assemblies[0], "System", "Object");
- types[KnownTypes.ObjectAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "ObjectAnimationBase");
- types[KnownTypes.ObjectAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "ObjectAnimationUsingKeyFrames");
- types[KnownTypes.ObjectDataProvider] = InitType(assemblies[4], "System.Windows.Data", "ObjectDataProvider");
- types[KnownTypes.ObjectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "ObjectKeyFrame");
- types[KnownTypes.ObjectKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "ObjectKeyFrameCollection");
- types[KnownTypes.OrthographicCamera] = InitType(assemblies[3], "System.Windows.Media.Media3D", "OrthographicCamera");
- types[KnownTypes.OuterGlowBitmapEffect] = InitType(assemblies[3], "System.Windows.Media.Effects", "OuterGlowBitmapEffect");
- types[KnownTypes.Page] = InitType(assemblies[4], "System.Windows.Controls", "Page");
- types[KnownTypes.PageContent] = InitType(assemblies[4], "System.Windows.Documents", "PageContent");
- types[KnownTypes.PageFunctionBase] = InitType(assemblies[4], "System.Windows.Navigation", "PageFunctionBase");
- types[KnownTypes.Panel] = InitType(assemblies[4], "System.Windows.Controls", "Panel");
- types[KnownTypes.Paragraph] = InitType(assemblies[4], "System.Windows.Documents", "Paragraph");
- types[KnownTypes.ParallelTimeline] = InitType(assemblies[3], "System.Windows.Media.Animation", "ParallelTimeline");
- types[KnownTypes.ParserContext] = InitType(assemblies[4], "System.Windows.Markup", "ParserContext");
- types[KnownTypes.PasswordBox] = InitType(assemblies[4], "System.Windows.Controls", "PasswordBox");
- types[KnownTypes.Path] = InitType(assemblies[4], "System.Windows.Shapes", "Path");
- types[KnownTypes.PathFigure] = InitType(assemblies[3], "System.Windows.Media", "PathFigure");
- types[KnownTypes.PathFigureCollection] = InitType(assemblies[3], "System.Windows.Media", "PathFigureCollection");
- types[KnownTypes.PathFigureCollectionConverter] = InitType(assemblies[3], "System.Windows.Media", "PathFigureCollectionConverter");
- types[KnownTypes.PathGeometry] = InitType(assemblies[3], "System.Windows.Media", "PathGeometry");
- types[KnownTypes.PathSegment] = InitType(assemblies[3], "System.Windows.Media", "PathSegment");
- types[KnownTypes.PathSegmentCollection] = InitType(assemblies[3], "System.Windows.Media", "PathSegmentCollection");
- types[KnownTypes.PauseStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "PauseStoryboard");
- types[KnownTypes.Pen] = InitType(assemblies[3], "System.Windows.Media", "Pen");
- types[KnownTypes.PerspectiveCamera] = InitType(assemblies[3], "System.Windows.Media.Media3D", "PerspectiveCamera");
- types[KnownTypes.PixelFormat] = InitType(assemblies[3], "System.Windows.Media", "PixelFormat");
- types[KnownTypes.PixelFormatConverter] = InitType(assemblies[3], "System.Windows.Media", "PixelFormatConverter");
- types[KnownTypes.PngBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "PngBitmapDecoder");
- types[KnownTypes.PngBitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "PngBitmapEncoder");
- types[KnownTypes.Point] = InitType(assemblies[2], "System.Windows", "Point");
- types[KnownTypes.Point3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point3D");
- types[KnownTypes.Point3DAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DAnimation");
- types[KnownTypes.Point3DAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DAnimationBase");
- types[KnownTypes.Point3DAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DAnimationUsingKeyFrames");
- types[KnownTypes.Point3DCollection] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point3DCollection");
- types[KnownTypes.Point3DCollectionConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point3DCollectionConverter");
- types[KnownTypes.Point3DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point3DConverter");
- types[KnownTypes.Point3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DKeyFrame");
- types[KnownTypes.Point3DKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DKeyFrameCollection");
- types[KnownTypes.Point4D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point4D");
- types[KnownTypes.Point4DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Point4DConverter");
- types[KnownTypes.PointAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointAnimation");
- types[KnownTypes.PointAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointAnimationBase");
- types[KnownTypes.PointAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointAnimationUsingKeyFrames");
- types[KnownTypes.PointAnimationUsingPath] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointAnimationUsingPath");
- types[KnownTypes.PointCollection] = InitType(assemblies[3], "System.Windows.Media", "PointCollection");
- types[KnownTypes.PointCollectionConverter] = InitType(assemblies[3], "System.Windows.Media", "PointCollectionConverter");
- types[KnownTypes.PointConverter] = InitType(assemblies[2], "System.Windows", "PointConverter");
- types[KnownTypes.PointIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "PointIListConverter");
- types[KnownTypes.PointKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointKeyFrame");
- types[KnownTypes.PointKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "PointKeyFrameCollection");
- types[KnownTypes.PointLight] = InitType(assemblies[3], "System.Windows.Media.Media3D", "PointLight");
- types[KnownTypes.PointLightBase] = InitType(assemblies[3], "System.Windows.Media.Media3D", "PointLightBase");
- types[KnownTypes.PolyBezierSegment] = InitType(assemblies[3], "System.Windows.Media", "PolyBezierSegment");
- types[KnownTypes.PolyLineSegment] = InitType(assemblies[3], "System.Windows.Media", "PolyLineSegment");
- types[KnownTypes.PolyQuadraticBezierSegment] = InitType(assemblies[3], "System.Windows.Media", "PolyQuadraticBezierSegment");
- types[KnownTypes.Polygon] = InitType(assemblies[4], "System.Windows.Shapes", "Polygon");
- types[KnownTypes.Polyline] = InitType(assemblies[4], "System.Windows.Shapes", "Polyline");
- types[KnownTypes.Popup] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "Popup");
- types[KnownTypes.PresentationSource] = InitType(assemblies[3], "System.Windows", "PresentationSource");
- types[KnownTypes.PriorityBinding] = InitType(assemblies[4], "System.Windows.Data", "PriorityBinding");
- types[KnownTypes.PriorityBindingExpression] = InitType(assemblies[4], "System.Windows.Data", "PriorityBindingExpression");
- types[KnownTypes.ProgressBar] = InitType(assemblies[4], "System.Windows.Controls", "ProgressBar");
- types[KnownTypes.ProjectionCamera] = InitType(assemblies[3], "System.Windows.Media.Media3D", "ProjectionCamera");
- types[KnownTypes.PropertyPath] = InitType(assemblies[4], "System.Windows", "PropertyPath");
- types[KnownTypes.PropertyPathConverter] = InitType(assemblies[4], "System.Windows", "PropertyPathConverter");
- types[KnownTypes.QuadraticBezierSegment] = InitType(assemblies[3], "System.Windows.Media", "QuadraticBezierSegment");
- types[KnownTypes.Quaternion] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Quaternion");
- types[KnownTypes.QuaternionAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionAnimation");
- types[KnownTypes.QuaternionAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionAnimationBase");
- types[KnownTypes.QuaternionAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionAnimationUsingKeyFrames");
- types[KnownTypes.QuaternionConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "QuaternionConverter");
- types[KnownTypes.QuaternionKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionKeyFrame");
- types[KnownTypes.QuaternionKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionKeyFrameCollection");
- types[KnownTypes.QuaternionRotation3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "QuaternionRotation3D");
- types[KnownTypes.RadialGradientBrush] = InitType(assemblies[3], "System.Windows.Media", "RadialGradientBrush");
- types[KnownTypes.RadioButton] = InitType(assemblies[4], "System.Windows.Controls", "RadioButton");
- types[KnownTypes.RangeBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "RangeBase");
- types[KnownTypes.Rect] = InitType(assemblies[2], "System.Windows", "Rect");
- types[KnownTypes.Rect3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Rect3D");
- types[KnownTypes.Rect3DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Rect3DConverter");
- types[KnownTypes.RectAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "RectAnimation");
- types[KnownTypes.RectAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "RectAnimationBase");
- types[KnownTypes.RectAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "RectAnimationUsingKeyFrames");
- types[KnownTypes.RectConverter] = InitType(assemblies[2], "System.Windows", "RectConverter");
- types[KnownTypes.RectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "RectKeyFrame");
- types[KnownTypes.RectKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "RectKeyFrameCollection");
- types[KnownTypes.Rectangle] = InitType(assemblies[4], "System.Windows.Shapes", "Rectangle");
- types[KnownTypes.RectangleGeometry] = InitType(assemblies[3], "System.Windows.Media", "RectangleGeometry");
- types[KnownTypes.RelativeSource] = InitType(assemblies[4], "System.Windows.Data", "RelativeSource");
- types[KnownTypes.RemoveStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "RemoveStoryboard");
- types[KnownTypes.RenderOptions] = InitType(assemblies[3], "System.Windows.Media", "RenderOptions");
- types[KnownTypes.RenderTargetBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "RenderTargetBitmap");
- types[KnownTypes.RepeatBehavior] = InitType(assemblies[3], "System.Windows.Media.Animation", "RepeatBehavior");
- types[KnownTypes.RepeatBehaviorConverter] = InitType(assemblies[3], "System.Windows.Media.Animation", "RepeatBehaviorConverter");
- types[KnownTypes.RepeatButton] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "RepeatButton");
- types[KnownTypes.ResizeGrip] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "ResizeGrip");
- types[KnownTypes.ResourceDictionary] = InitType(assemblies[4], "System.Windows", "ResourceDictionary");
- types[KnownTypes.ResourceKey] = InitType(assemblies[4], "System.Windows", "ResourceKey");
- types[KnownTypes.ResumeStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "ResumeStoryboard");
- types[KnownTypes.RichTextBox] = InitType(assemblies[4], "System.Windows.Controls", "RichTextBox");
- types[KnownTypes.RotateTransform] = InitType(assemblies[3], "System.Windows.Media", "RotateTransform");
- types[KnownTypes.RotateTransform3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "RotateTransform3D");
- types[KnownTypes.Rotation3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Rotation3D");
- types[KnownTypes.Rotation3DAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DAnimation");
- types[KnownTypes.Rotation3DAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DAnimationBase");
- types[KnownTypes.Rotation3DAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DAnimationUsingKeyFrames");
- types[KnownTypes.Rotation3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DKeyFrame");
- types[KnownTypes.Rotation3DKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DKeyFrameCollection");
- types[KnownTypes.RoutedCommand] = InitType(assemblies[3], "System.Windows.Input", "RoutedCommand");
- types[KnownTypes.RoutedEvent] = InitType(assemblies[3], "System.Windows", "RoutedEvent");
- types[KnownTypes.RoutedEventConverter] = InitType(assemblies[4], "System.Windows.Markup", "RoutedEventConverter");
- types[KnownTypes.RoutedUICommand] = InitType(assemblies[3], "System.Windows.Input", "RoutedUICommand");
- types[KnownTypes.RoutingStrategy] = InitType(assemblies[3], "System.Windows", "RoutingStrategy");
- types[KnownTypes.RowDefinition] = InitType(assemblies[4], "System.Windows.Controls", "RowDefinition");
- types[KnownTypes.Run] = InitType(assemblies[4], "System.Windows.Documents", "Run");
- types[KnownTypes.RuntimeNamePropertyAttribute] = InitType(assemblies[2], "System.Windows.Markup", "RuntimeNamePropertyAttribute");
- types[KnownTypes.SByte] = InitType(assemblies[0], "System", "SByte");
- types[KnownTypes.SByteConverter] = InitType(assemblies[1], "System.ComponentModel", "SByteConverter");
- types[KnownTypes.ScaleTransform] = InitType(assemblies[3], "System.Windows.Media", "ScaleTransform");
- types[KnownTypes.ScaleTransform3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "ScaleTransform3D");
- types[KnownTypes.ScrollBar] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "ScrollBar");
- types[KnownTypes.ScrollContentPresenter] = InitType(assemblies[4], "System.Windows.Controls", "ScrollContentPresenter");
- types[KnownTypes.ScrollViewer] = InitType(assemblies[4], "System.Windows.Controls", "ScrollViewer");
- types[KnownTypes.Section] = InitType(assemblies[4], "System.Windows.Documents", "Section");
- types[KnownTypes.SeekStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "SeekStoryboard");
- types[KnownTypes.Selector] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "Selector");
- types[KnownTypes.Separator] = InitType(assemblies[4], "System.Windows.Controls", "Separator");
- types[KnownTypes.SetStoryboardSpeedRatio] = InitType(assemblies[4], "System.Windows.Media.Animation", "SetStoryboardSpeedRatio");
- types[KnownTypes.Setter] = InitType(assemblies[4], "System.Windows", "Setter");
- types[KnownTypes.SetterBase] = InitType(assemblies[4], "System.Windows", "SetterBase");
- types[KnownTypes.Shape] = InitType(assemblies[4], "System.Windows.Shapes", "Shape");
- types[KnownTypes.Single] = InitType(assemblies[0], "System", "Single");
- types[KnownTypes.SingleAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "SingleAnimation");
- types[KnownTypes.SingleAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "SingleAnimationBase");
- types[KnownTypes.SingleAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "SingleAnimationUsingKeyFrames");
- types[KnownTypes.SingleConverter] = InitType(assemblies[1], "System.ComponentModel", "SingleConverter");
- types[KnownTypes.SingleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SingleKeyFrame");
- types[KnownTypes.SingleKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "SingleKeyFrameCollection");
- types[KnownTypes.Size] = InitType(assemblies[2], "System.Windows", "Size");
- types[KnownTypes.Size3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Size3D");
- types[KnownTypes.Size3DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Size3DConverter");
- types[KnownTypes.SizeAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "SizeAnimation");
- types[KnownTypes.SizeAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "SizeAnimationBase");
- types[KnownTypes.SizeAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "SizeAnimationUsingKeyFrames");
- types[KnownTypes.SizeConverter] = InitType(assemblies[2], "System.Windows", "SizeConverter");
- types[KnownTypes.SizeKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SizeKeyFrame");
- types[KnownTypes.SizeKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "SizeKeyFrameCollection");
- types[KnownTypes.SkewTransform] = InitType(assemblies[3], "System.Windows.Media", "SkewTransform");
- types[KnownTypes.SkipStoryboardToFill] = InitType(assemblies[4], "System.Windows.Media.Animation", "SkipStoryboardToFill");
- types[KnownTypes.Slider] = InitType(assemblies[4], "System.Windows.Controls", "Slider");
- types[KnownTypes.SolidColorBrush] = InitType(assemblies[3], "System.Windows.Media", "SolidColorBrush");
- types[KnownTypes.SoundPlayerAction] = InitType(assemblies[4], "System.Windows.Controls", "SoundPlayerAction");
- types[KnownTypes.Span] = InitType(assemblies[4], "System.Windows.Documents", "Span");
- types[KnownTypes.SpecularMaterial] = InitType(assemblies[3], "System.Windows.Media.Media3D", "SpecularMaterial");
- types[KnownTypes.SpellCheck] = InitType(assemblies[4], "System.Windows.Controls", "SpellCheck");
- types[KnownTypes.SplineByteKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineByteKeyFrame");
- types[KnownTypes.SplineColorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineColorKeyFrame");
- types[KnownTypes.SplineDecimalKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineDecimalKeyFrame");
- types[KnownTypes.SplineDoubleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineDoubleKeyFrame");
- types[KnownTypes.SplineInt16KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineInt16KeyFrame");
- types[KnownTypes.SplineInt32KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineInt32KeyFrame");
- types[KnownTypes.SplineInt64KeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineInt64KeyFrame");
- types[KnownTypes.SplinePoint3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplinePoint3DKeyFrame");
- types[KnownTypes.SplinePointKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplinePointKeyFrame");
- types[KnownTypes.SplineQuaternionKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineQuaternionKeyFrame");
- types[KnownTypes.SplineRectKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineRectKeyFrame");
- types[KnownTypes.SplineRotation3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineRotation3DKeyFrame");
- types[KnownTypes.SplineSingleKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineSingleKeyFrame");
- types[KnownTypes.SplineSizeKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineSizeKeyFrame");
- types[KnownTypes.SplineThicknessKeyFrame] = InitType(assemblies[4], "System.Windows.Media.Animation", "SplineThicknessKeyFrame");
- types[KnownTypes.SplineVector3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineVector3DKeyFrame");
- types[KnownTypes.SplineVectorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "SplineVectorKeyFrame");
- types[KnownTypes.SpotLight] = InitType(assemblies[3], "System.Windows.Media.Media3D", "SpotLight");
- types[KnownTypes.StackPanel] = InitType(assemblies[4], "System.Windows.Controls", "StackPanel");
- types[KnownTypes.StaticExtension] = InitType(assemblies[4], "System.Windows.Markup", "StaticExtension");
- types[KnownTypes.StaticResourceExtension] = InitType(assemblies[4], "System.Windows", "StaticResourceExtension");
- types[KnownTypes.StatusBar] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "StatusBar");
- types[KnownTypes.StatusBarItem] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "StatusBarItem");
- types[KnownTypes.StickyNoteControl] = InitType(assemblies[4], "System.Windows.Controls", "StickyNoteControl");
- types[KnownTypes.StopStoryboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "StopStoryboard");
- types[KnownTypes.Storyboard] = InitType(assemblies[4], "System.Windows.Media.Animation", "Storyboard");
- types[KnownTypes.StreamGeometry] = InitType(assemblies[3], "System.Windows.Media", "StreamGeometry");
- types[KnownTypes.StreamGeometryContext] = InitType(assemblies[3], "System.Windows.Media", "StreamGeometryContext");
- types[KnownTypes.StreamResourceInfo] = InitType(assemblies[4], "System.Windows.Resources", "StreamResourceInfo");
- types[KnownTypes.String] = InitType(assemblies[0], "System", "String");
- types[KnownTypes.StringAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "StringAnimationBase");
- types[KnownTypes.StringAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "StringAnimationUsingKeyFrames");
- types[KnownTypes.StringConverter] = InitType(assemblies[1], "System.ComponentModel", "StringConverter");
- types[KnownTypes.StringKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "StringKeyFrame");
- types[KnownTypes.StringKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "StringKeyFrameCollection");
- types[KnownTypes.StrokeCollection] = InitType(assemblies[3], "System.Windows.Ink", "StrokeCollection");
- types[KnownTypes.StrokeCollectionConverter] = InitType(assemblies[3], "System.Windows", "StrokeCollectionConverter");
- types[KnownTypes.Style] = InitType(assemblies[4], "System.Windows", "Style");
- types[KnownTypes.Stylus] = InitType(assemblies[3], "System.Windows.Input", "Stylus");
- types[KnownTypes.StylusDevice] = InitType(assemblies[3], "System.Windows.Input", "StylusDevice");
- types[KnownTypes.TabControl] = InitType(assemblies[4], "System.Windows.Controls", "TabControl");
- types[KnownTypes.TabItem] = InitType(assemblies[4], "System.Windows.Controls", "TabItem");
- types[KnownTypes.TabPanel] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "TabPanel");
- types[KnownTypes.Table] = InitType(assemblies[4], "System.Windows.Documents", "Table");
- types[KnownTypes.TableCell] = InitType(assemblies[4], "System.Windows.Documents", "TableCell");
- types[KnownTypes.TableColumn] = InitType(assemblies[4], "System.Windows.Documents", "TableColumn");
- types[KnownTypes.TableRow] = InitType(assemblies[4], "System.Windows.Documents", "TableRow");
- types[KnownTypes.TableRowGroup] = InitType(assemblies[4], "System.Windows.Documents", "TableRowGroup");
- types[KnownTypes.TabletDevice] = InitType(assemblies[3], "System.Windows.Input", "TabletDevice");
- types[KnownTypes.TemplateBindingExpression] = InitType(assemblies[4], "System.Windows", "TemplateBindingExpression");
- types[KnownTypes.TemplateBindingExpressionConverter] = InitType(assemblies[4], "System.Windows", "TemplateBindingExpressionConverter");
- types[KnownTypes.TemplateBindingExtension] = InitType(assemblies[4], "System.Windows", "TemplateBindingExtension");
- types[KnownTypes.TemplateBindingExtensionConverter] = InitType(assemblies[4], "System.Windows", "TemplateBindingExtensionConverter");
- types[KnownTypes.TemplateKey] = InitType(assemblies[4], "System.Windows", "TemplateKey");
- types[KnownTypes.TemplateKeyConverter] = InitType(assemblies[4], "System.Windows.Markup", "TemplateKeyConverter");
- types[KnownTypes.TextBlock] = InitType(assemblies[4], "System.Windows.Controls", "TextBlock");
- types[KnownTypes.TextBox] = InitType(assemblies[4], "System.Windows.Controls", "TextBox");
- types[KnownTypes.TextBoxBase] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "TextBoxBase");
- types[KnownTypes.TextComposition] = InitType(assemblies[3], "System.Windows.Input", "TextComposition");
- types[KnownTypes.TextCompositionManager] = InitType(assemblies[3], "System.Windows.Input", "TextCompositionManager");
- types[KnownTypes.TextDecoration] = InitType(assemblies[3], "System.Windows", "TextDecoration");
- types[KnownTypes.TextDecorationCollection] = InitType(assemblies[3], "System.Windows", "TextDecorationCollection");
- types[KnownTypes.TextDecorationCollectionConverter] = InitType(assemblies[3], "System.Windows", "TextDecorationCollectionConverter");
- types[KnownTypes.TextEffect] = InitType(assemblies[3], "System.Windows.Media", "TextEffect");
- types[KnownTypes.TextEffectCollection] = InitType(assemblies[3], "System.Windows.Media", "TextEffectCollection");
- types[KnownTypes.TextElement] = InitType(assemblies[4], "System.Windows.Documents", "TextElement");
- types[KnownTypes.TextSearch] = InitType(assemblies[4], "System.Windows.Controls", "TextSearch");
- types[KnownTypes.ThemeDictionaryExtension] = InitType(assemblies[4], "System.Windows", "ThemeDictionaryExtension");
- types[KnownTypes.Thickness] = InitType(assemblies[4], "System.Windows", "Thickness");
- types[KnownTypes.ThicknessAnimation] = InitType(assemblies[4], "System.Windows.Media.Animation", "ThicknessAnimation");
- types[KnownTypes.ThicknessAnimationBase] = InitType(assemblies[4], "System.Windows.Media.Animation", "ThicknessAnimationBase");
- types[KnownTypes.ThicknessAnimationUsingKeyFrames] = InitType(assemblies[4], "System.Windows.Media.Animation", "ThicknessAnimationUsingKeyFrames");
- types[KnownTypes.ThicknessConverter] = InitType(assemblies[4], "System.Windows", "ThicknessConverter");
- types[KnownTypes.ThicknessKeyFrame] = InitType(assemblies[4], "System.Windows.Media.Animation", "ThicknessKeyFrame");
- types[KnownTypes.ThicknessKeyFrameCollection] = InitType(assemblies[4], "System.Windows.Media.Animation", "ThicknessKeyFrameCollection");
- types[KnownTypes.Thumb] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "Thumb");
- types[KnownTypes.TickBar] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "TickBar");
- types[KnownTypes.TiffBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "TiffBitmapDecoder");
- types[KnownTypes.TiffBitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "TiffBitmapEncoder");
- types[KnownTypes.TileBrush] = InitType(assemblies[3], "System.Windows.Media", "TileBrush");
- types[KnownTypes.TimeSpan] = InitType(assemblies[0], "System", "TimeSpan");
- types[KnownTypes.TimeSpanConverter] = InitType(assemblies[1], "System.ComponentModel", "TimeSpanConverter");
- types[KnownTypes.Timeline] = InitType(assemblies[3], "System.Windows.Media.Animation", "Timeline");
- types[KnownTypes.TimelineCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "TimelineCollection");
- types[KnownTypes.TimelineGroup] = InitType(assemblies[3], "System.Windows.Media.Animation", "TimelineGroup");
- types[KnownTypes.ToggleButton] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "ToggleButton");
- types[KnownTypes.ToolBar] = InitType(assemblies[4], "System.Windows.Controls", "ToolBar");
- types[KnownTypes.ToolBarOverflowPanel] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "ToolBarOverflowPanel");
- types[KnownTypes.ToolBarPanel] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "ToolBarPanel");
- types[KnownTypes.ToolBarTray] = InitType(assemblies[4], "System.Windows.Controls", "ToolBarTray");
- types[KnownTypes.ToolTip] = InitType(assemblies[4], "System.Windows.Controls", "ToolTip");
- types[KnownTypes.ToolTipService] = InitType(assemblies[4], "System.Windows.Controls", "ToolTipService");
- types[KnownTypes.Track] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "Track");
- types[KnownTypes.Transform] = InitType(assemblies[3], "System.Windows.Media", "Transform");
- types[KnownTypes.Transform3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Transform3D");
- types[KnownTypes.Transform3DCollection] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Transform3DCollection");
- types[KnownTypes.Transform3DGroup] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Transform3DGroup");
- types[KnownTypes.TransformCollection] = InitType(assemblies[3], "System.Windows.Media", "TransformCollection");
- types[KnownTypes.TransformConverter] = InitType(assemblies[3], "System.Windows.Media", "TransformConverter");
- types[KnownTypes.TransformGroup] = InitType(assemblies[3], "System.Windows.Media", "TransformGroup");
- types[KnownTypes.TransformedBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "TransformedBitmap");
- types[KnownTypes.TranslateTransform] = InitType(assemblies[3], "System.Windows.Media", "TranslateTransform");
- types[KnownTypes.TranslateTransform3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "TranslateTransform3D");
- types[KnownTypes.TreeView] = InitType(assemblies[4], "System.Windows.Controls", "TreeView");
- types[KnownTypes.TreeViewItem] = InitType(assemblies[4], "System.Windows.Controls", "TreeViewItem");
- types[KnownTypes.Trigger] = InitType(assemblies[4], "System.Windows", "Trigger");
- types[KnownTypes.TriggerAction] = InitType(assemblies[4], "System.Windows", "TriggerAction");
- types[KnownTypes.TriggerBase] = InitType(assemblies[4], "System.Windows", "TriggerBase");
- types[KnownTypes.TypeExtension] = InitType(assemblies[4], "System.Windows.Markup", "TypeExtension");
- types[KnownTypes.TypeTypeConverter] = InitType(assemblies[2], "System.Windows.Markup", "TypeTypeConverter");
- types[KnownTypes.Typography] = InitType(assemblies[4], "System.Windows.Documents", "Typography");
- types[KnownTypes.UIElement] = InitType(assemblies[3], "System.Windows", "UIElement");
- types[KnownTypes.UInt16] = InitType(assemblies[0], "System", "UInt16");
- types[KnownTypes.UInt16Converter] = InitType(assemblies[1], "System.ComponentModel", "UInt16Converter");
- types[KnownTypes.UInt32] = InitType(assemblies[0], "System", "UInt32");
- types[KnownTypes.UInt32Converter] = InitType(assemblies[1], "System.ComponentModel", "UInt32Converter");
- types[KnownTypes.UInt64] = InitType(assemblies[0], "System", "UInt64");
- types[KnownTypes.UInt64Converter] = InitType(assemblies[1], "System.ComponentModel", "UInt64Converter");
- types[KnownTypes.UShortIListConverter] = InitType(assemblies[3], "System.Windows.Media.Converters", "UShortIListConverter");
- types[KnownTypes.Underline] = InitType(assemblies[4], "System.Windows.Documents", "Underline");
- types[KnownTypes.UniformGrid] = InitType(assemblies[4], "System.Windows.Controls.Primitives", "UniformGrid");
- types[KnownTypes.Uri] = InitType(assemblies[1], "System", "Uri");
- types[KnownTypes.UriTypeConverter] = InitType(assemblies[1], "System", "UriTypeConverter");
- types[KnownTypes.UserControl] = InitType(assemblies[4], "System.Windows.Controls", "UserControl");
- types[KnownTypes.Validation] = InitType(assemblies[4], "System.Windows.Controls", "Validation");
- types[KnownTypes.Vector] = InitType(assemblies[2], "System.Windows", "Vector");
- types[KnownTypes.Vector3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Vector3D");
- types[KnownTypes.Vector3DAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "Vector3DAnimation");
- types[KnownTypes.Vector3DAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "Vector3DAnimationBase");
- types[KnownTypes.Vector3DAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "Vector3DAnimationUsingKeyFrames");
- types[KnownTypes.Vector3DCollection] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Vector3DCollection");
- types[KnownTypes.Vector3DCollectionConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Vector3DCollectionConverter");
- types[KnownTypes.Vector3DConverter] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Vector3DConverter");
- types[KnownTypes.Vector3DKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "Vector3DKeyFrame");
- types[KnownTypes.Vector3DKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "Vector3DKeyFrameCollection");
- types[KnownTypes.VectorAnimation] = InitType(assemblies[3], "System.Windows.Media.Animation", "VectorAnimation");
- types[KnownTypes.VectorAnimationBase] = InitType(assemblies[3], "System.Windows.Media.Animation", "VectorAnimationBase");
- types[KnownTypes.VectorAnimationUsingKeyFrames] = InitType(assemblies[3], "System.Windows.Media.Animation", "VectorAnimationUsingKeyFrames");
- types[KnownTypes.VectorCollection] = InitType(assemblies[3], "System.Windows.Media", "VectorCollection");
- types[KnownTypes.VectorCollectionConverter] = InitType(assemblies[3], "System.Windows.Media", "VectorCollectionConverter");
- types[KnownTypes.VectorConverter] = InitType(assemblies[2], "System.Windows", "VectorConverter");
- types[KnownTypes.VectorKeyFrame] = InitType(assemblies[3], "System.Windows.Media.Animation", "VectorKeyFrame");
- types[KnownTypes.VectorKeyFrameCollection] = InitType(assemblies[3], "System.Windows.Media.Animation", "VectorKeyFrameCollection");
- types[KnownTypes.VideoDrawing] = InitType(assemblies[3], "System.Windows.Media", "VideoDrawing");
- types[KnownTypes.ViewBase] = InitType(assemblies[4], "System.Windows.Controls", "ViewBase");
- types[KnownTypes.Viewbox] = InitType(assemblies[4], "System.Windows.Controls", "Viewbox");
- types[KnownTypes.Viewport3D] = InitType(assemblies[4], "System.Windows.Controls", "Viewport3D");
- types[KnownTypes.Viewport3DVisual] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Viewport3DVisual");
- types[KnownTypes.VirtualizingPanel] = InitType(assemblies[4], "System.Windows.Controls", "VirtualizingPanel");
- types[KnownTypes.VirtualizingStackPanel] = InitType(assemblies[4], "System.Windows.Controls", "VirtualizingStackPanel");
- types[KnownTypes.Visual] = InitType(assemblies[3], "System.Windows.Media", "Visual");
- types[KnownTypes.Visual3D] = InitType(assemblies[3], "System.Windows.Media.Media3D", "Visual3D");
- types[KnownTypes.VisualBrush] = InitType(assemblies[3], "System.Windows.Media", "VisualBrush");
- types[KnownTypes.VisualTarget] = InitType(assemblies[3], "System.Windows.Media", "VisualTarget");
- types[KnownTypes.WeakEventManager] = InitType(assemblies[2], "System.Windows", "WeakEventManager");
- types[KnownTypes.WhitespaceSignificantCollectionAttribute] = InitType(assemblies[2], "System.Windows.Markup", "WhitespaceSignificantCollectionAttribute");
- types[KnownTypes.Window] = InitType(assemblies[4], "System.Windows", "Window");
- types[KnownTypes.WmpBitmapDecoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "WmpBitmapDecoder");
- types[KnownTypes.WmpBitmapEncoder] = InitType(assemblies[3], "System.Windows.Media.Imaging", "WmpBitmapEncoder");
- types[KnownTypes.WrapPanel] = InitType(assemblies[4], "System.Windows.Controls", "WrapPanel");
- types[KnownTypes.WriteableBitmap] = InitType(assemblies[3], "System.Windows.Media.Imaging", "WriteableBitmap");
- types[KnownTypes.XamlBrushSerializer] = InitType(assemblies[4], "System.Windows.Markup", "XamlBrushSerializer");
- types[KnownTypes.XamlInt32CollectionSerializer] = InitType(assemblies[4], "System.Windows.Markup", "XamlInt32CollectionSerializer");
- types[KnownTypes.XamlPathDataSerializer] = InitType(assemblies[4], "System.Windows.Markup", "XamlPathDataSerializer");
- types[KnownTypes.XamlPoint3DCollectionSerializer] = InitType(assemblies[4], "System.Windows.Markup", "XamlPoint3DCollectionSerializer");
- types[KnownTypes.XamlPointCollectionSerializer] = InitType(assemblies[4], "System.Windows.Markup", "XamlPointCollectionSerializer");
- types[KnownTypes.XamlReader] = InitType(assemblies[4], "System.Windows.Markup", "XamlReader");
- types[KnownTypes.XamlStyleSerializer] = InitType(assemblies[4], "System.Windows.Markup", "XamlStyleSerializer");
- types[KnownTypes.XamlTemplateSerializer] = InitType(assemblies[4], "System.Windows.Markup", "XamlTemplateSerializer");
- types[KnownTypes.XamlVector3DCollectionSerializer] = InitType(assemblies[4], "System.Windows.Markup", "XamlVector3DCollectionSerializer");
- types[KnownTypes.XamlWriter] = InitType(assemblies[4], "System.Windows.Markup", "XamlWriter");
- types[KnownTypes.XmlDataProvider] = InitType(assemblies[4], "System.Windows.Data", "XmlDataProvider");
- types[KnownTypes.XmlLangPropertyAttribute] = InitType(assemblies[2], "System.Windows.Markup", "XmlLangPropertyAttribute");
- types[KnownTypes.XmlLanguage] = InitType(assemblies[3], "System.Windows.Markup", "XmlLanguage");
- types[KnownTypes.XmlLanguageConverter] = InitType(assemblies[3], "System.Windows.Markup", "XmlLanguageConverter");
- types[KnownTypes.XmlNamespaceMapping] = InitType(assemblies[4], "System.Windows.Data", "XmlNamespaceMapping");
- types[KnownTypes.ZoomPercentageConverter] = InitType(assemblies[4], "System.Windows.Documents", "ZoomPercentageConverter");
- }
-
- void InitMembers() {
-
- members[KnownMembers.AccessText_Text] = InitMember(KnownTypes.AccessText, "Text", InitType(assemblies[0], "System", "String"));
- members[KnownMembers.BeginStoryboard_Storyboard] = InitMember(KnownTypes.BeginStoryboard, "Storyboard", InitType(assemblies[4], "System.Windows.Media.Animation", "Storyboard"));
- members[KnownMembers.BitmapEffectGroup_Children] = InitMember(KnownTypes.BitmapEffectGroup, "Children", InitType(assemblies[3], "System.Windows.Media.Effects", "BitmapEffectCollection"));
- members[KnownMembers.Border_Background] = InitMember(KnownTypes.Border, "Background", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.Border_BorderBrush] = InitMember(KnownTypes.Border, "BorderBrush", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.Border_BorderThickness] = InitMember(KnownTypes.Border, "BorderThickness", InitType(assemblies[4], "System.Windows", "Thickness"));
- members[KnownMembers.ButtonBase_Command] = InitMember(KnownTypes.ButtonBase, "Command", InitType(assemblies[3], "System.Windows.Input", "ICommand"));
- members[KnownMembers.ButtonBase_CommandParameter] = InitMember(KnownTypes.ButtonBase, "CommandParameter", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.ButtonBase_CommandTarget] = InitMember(KnownTypes.ButtonBase, "CommandTarget", InitType(assemblies[3], "System.Windows", "IInputElement"));
- members[KnownMembers.ButtonBase_IsPressed] = InitMember(KnownTypes.ButtonBase, "IsPressed", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.ColumnDefinition_MaxWidth] = InitMember(KnownTypes.ColumnDefinition, "MaxWidth", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.ColumnDefinition_MinWidth] = InitMember(KnownTypes.ColumnDefinition, "MinWidth", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.ColumnDefinition_Width] = InitMember(KnownTypes.ColumnDefinition, "Width", InitType(assemblies[4], "System.Windows", "GridLength"));
- members[KnownMembers.ContentControl_Content] = InitMember(KnownTypes.ContentControl, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.ContentControl_ContentTemplate] = InitMember(KnownTypes.ContentControl, "ContentTemplate", InitType(assemblies[4], "System.Windows", "DataTemplate"));
- members[KnownMembers.ContentControl_ContentTemplateSelector] = InitMember(KnownTypes.ContentControl, "ContentTemplateSelector", InitType(assemblies[4], "System.Windows.Controls", "DataTemplateSelector"));
- members[KnownMembers.ContentControl_HasContent] = InitMember(KnownTypes.ContentControl, "HasContent", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.ContentElement_Focusable] = InitMember(KnownTypes.ContentElement, "Focusable", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.ContentPresenter_Content] = InitMember(KnownTypes.ContentPresenter, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.ContentPresenter_ContentSource] = InitMember(KnownTypes.ContentPresenter, "ContentSource", InitType(assemblies[0], "System", "String"));
- members[KnownMembers.ContentPresenter_ContentTemplate] = InitMember(KnownTypes.ContentPresenter, "ContentTemplate", InitType(assemblies[4], "System.Windows", "DataTemplate"));
- members[KnownMembers.ContentPresenter_ContentTemplateSelector] = InitMember(KnownTypes.ContentPresenter, "ContentTemplateSelector", InitType(assemblies[4], "System.Windows.Controls", "DataTemplateSelector"));
- members[KnownMembers.ContentPresenter_RecognizesAccessKey] = InitMember(KnownTypes.ContentPresenter, "RecognizesAccessKey", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.Control_Background] = InitMember(KnownTypes.Control, "Background", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.Control_BorderBrush] = InitMember(KnownTypes.Control, "BorderBrush", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.Control_BorderThickness] = InitMember(KnownTypes.Control, "BorderThickness", InitType(assemblies[4], "System.Windows", "Thickness"));
- members[KnownMembers.Control_FontFamily] = InitMember(KnownTypes.Control, "FontFamily", InitType(assemblies[3], "System.Windows.Media", "FontFamily"));
- members[KnownMembers.Control_FontSize] = InitMember(KnownTypes.Control, "FontSize", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.Control_FontStretch] = InitMember(KnownTypes.Control, "FontStretch", InitType(assemblies[3], "System.Windows", "FontStretch"));
- members[KnownMembers.Control_FontStyle] = InitMember(KnownTypes.Control, "FontStyle", InitType(assemblies[3], "System.Windows", "FontStyle"));
- members[KnownMembers.Control_FontWeight] = InitMember(KnownTypes.Control, "FontWeight", InitType(assemblies[3], "System.Windows", "FontWeight"));
- members[KnownMembers.Control_Foreground] = InitMember(KnownTypes.Control, "Foreground", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.Control_HorizontalContentAlignment] = InitMember(KnownTypes.Control, "HorizontalContentAlignment", InitType(assemblies[4], "System.Windows", "HorizontalAlignment"));
- members[KnownMembers.Control_IsTabStop] = InitMember(KnownTypes.Control, "IsTabStop", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.Control_Padding] = InitMember(KnownTypes.Control, "Padding", InitType(assemblies[4], "System.Windows", "Thickness"));
- members[KnownMembers.Control_TabIndex] = InitMember(KnownTypes.Control, "TabIndex", InitType(assemblies[0], "System", "Int32"));
- members[KnownMembers.Control_Template] = InitMember(KnownTypes.Control, "Template", InitType(assemblies[4], "System.Windows.Controls", "ControlTemplate"));
- members[KnownMembers.Control_VerticalContentAlignment] = InitMember(KnownTypes.Control, "VerticalContentAlignment", InitType(assemblies[4], "System.Windows", "VerticalAlignment"));
- members[KnownMembers.DockPanel_Dock] = InitMember(KnownTypes.DockPanel, "Dock", InitType(assemblies[4], "System.Windows.Controls", "Dock"));
- members[KnownMembers.DockPanel_LastChildFill] = InitMember(KnownTypes.DockPanel, "LastChildFill", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.DocumentViewerBase_Document] = InitMember(KnownTypes.DocumentViewerBase, "Document", InitType(assemblies[3], "System.Windows.Documents", "IDocumentPaginatorSource"));
- members[KnownMembers.DrawingGroup_Children] = InitMember(KnownTypes.DrawingGroup, "Children", InitType(assemblies[3], "System.Windows.Media", "DrawingCollection"));
- members[KnownMembers.FlowDocumentReader_Document] = InitMember(KnownTypes.FlowDocumentReader, "Document", InitType(assemblies[4], "System.Windows.Documents", "FlowDocument"));
- members[KnownMembers.FlowDocumentScrollViewer_Document] = InitMember(KnownTypes.FlowDocumentScrollViewer, "Document", InitType(assemblies[4], "System.Windows.Documents", "FlowDocument"));
- members[KnownMembers.FrameworkContentElement_Style] = InitMember(KnownTypes.FrameworkContentElement, "Style", InitType(assemblies[4], "System.Windows", "Style"));
- members[KnownMembers.FrameworkElement_FlowDirection] = InitMember(KnownTypes.FrameworkElement, "FlowDirection", InitType(assemblies[3], "System.Windows", "FlowDirection"));
- members[KnownMembers.FrameworkElement_Height] = InitMember(KnownTypes.FrameworkElement, "Height", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.FrameworkElement_HorizontalAlignment] = InitMember(KnownTypes.FrameworkElement, "HorizontalAlignment", InitType(assemblies[4], "System.Windows", "HorizontalAlignment"));
- members[KnownMembers.FrameworkElement_Margin] = InitMember(KnownTypes.FrameworkElement, "Margin", InitType(assemblies[4], "System.Windows", "Thickness"));
- members[KnownMembers.FrameworkElement_MaxHeight] = InitMember(KnownTypes.FrameworkElement, "MaxHeight", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.FrameworkElement_MaxWidth] = InitMember(KnownTypes.FrameworkElement, "MaxWidth", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.FrameworkElement_MinHeight] = InitMember(KnownTypes.FrameworkElement, "MinHeight", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.FrameworkElement_MinWidth] = InitMember(KnownTypes.FrameworkElement, "MinWidth", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.FrameworkElement_Name] = InitMember(KnownTypes.FrameworkElement, "Name", InitType(assemblies[0], "System", "String"));
- members[KnownMembers.FrameworkElement_Style] = InitMember(KnownTypes.FrameworkElement, "Style", InitType(assemblies[4], "System.Windows", "Style"));
- members[KnownMembers.FrameworkElement_VerticalAlignment] = InitMember(KnownTypes.FrameworkElement, "VerticalAlignment", InitType(assemblies[4], "System.Windows", "VerticalAlignment"));
- members[KnownMembers.FrameworkElement_Width] = InitMember(KnownTypes.FrameworkElement, "Width", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.GeneralTransformGroup_Children] = InitMember(KnownTypes.GeneralTransformGroup, "Children", InitType(assemblies[3], "System.Windows.Media", "GeneralTransformCollection"));
- members[KnownMembers.GeometryGroup_Children] = InitMember(KnownTypes.GeometryGroup, "Children", InitType(assemblies[3], "System.Windows.Media", "GeometryCollection"));
- members[KnownMembers.GradientBrush_GradientStops] = InitMember(KnownTypes.GradientBrush, "GradientStops", InitType(assemblies[3], "System.Windows.Media", "GradientStopCollection"));
- members[KnownMembers.Grid_Column] = InitMember(KnownTypes.Grid, "Column", InitType(assemblies[0], "System", "Int32"));
- members[KnownMembers.Grid_ColumnSpan] = InitMember(KnownTypes.Grid, "ColumnSpan", InitType(assemblies[0], "System", "Int32"));
- members[KnownMembers.Grid_Row] = InitMember(KnownTypes.Grid, "Row", InitType(assemblies[0], "System", "Int32"));
- members[KnownMembers.Grid_RowSpan] = InitMember(KnownTypes.Grid, "RowSpan", InitType(assemblies[0], "System", "Int32"));
- members[KnownMembers.GridViewColumn_Header] = InitMember(KnownTypes.GridViewColumn, "Header", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.HeaderedContentControl_HasHeader] = InitMember(KnownTypes.HeaderedContentControl, "HasHeader", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.HeaderedContentControl_Header] = InitMember(KnownTypes.HeaderedContentControl, "Header", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.HeaderedContentControl_HeaderTemplate] = InitMember(KnownTypes.HeaderedContentControl, "HeaderTemplate", InitType(assemblies[4], "System.Windows", "DataTemplate"));
- members[KnownMembers.HeaderedContentControl_HeaderTemplateSelector] = InitMember(KnownTypes.HeaderedContentControl, "HeaderTemplateSelector", InitType(assemblies[4], "System.Windows.Controls", "DataTemplateSelector"));
- members[KnownMembers.HeaderedItemsControl_HasHeader] = InitMember(KnownTypes.HeaderedItemsControl, "HasHeader", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.HeaderedItemsControl_Header] = InitMember(KnownTypes.HeaderedItemsControl, "Header", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.HeaderedItemsControl_HeaderTemplate] = InitMember(KnownTypes.HeaderedItemsControl, "HeaderTemplate", InitType(assemblies[4], "System.Windows", "DataTemplate"));
- members[KnownMembers.HeaderedItemsControl_HeaderTemplateSelector] = InitMember(KnownTypes.HeaderedItemsControl, "HeaderTemplateSelector", InitType(assemblies[4], "System.Windows.Controls", "DataTemplateSelector"));
- members[KnownMembers.Hyperlink_NavigateUri] = InitMember(KnownTypes.Hyperlink, "NavigateUri", InitType(assemblies[1], "System", "Uri"));
- members[KnownMembers.Image_Source] = InitMember(KnownTypes.Image, "Source", InitType(assemblies[3], "System.Windows.Media", "ImageSource"));
- members[KnownMembers.Image_Stretch] = InitMember(KnownTypes.Image, "Stretch", InitType(assemblies[3], "System.Windows.Media", "Stretch"));
- members[KnownMembers.ItemsControl_ItemContainerStyle] = InitMember(KnownTypes.ItemsControl, "ItemContainerStyle", InitType(assemblies[4], "System.Windows", "Style"));
- members[KnownMembers.ItemsControl_ItemContainerStyleSelector] = InitMember(KnownTypes.ItemsControl, "ItemContainerStyleSelector", InitType(assemblies[4], "System.Windows.Controls", "StyleSelector"));
- members[KnownMembers.ItemsControl_ItemTemplate] = InitMember(KnownTypes.ItemsControl, "ItemTemplate", InitType(assemblies[4], "System.Windows", "DataTemplate"));
- members[KnownMembers.ItemsControl_ItemTemplateSelector] = InitMember(KnownTypes.ItemsControl, "ItemTemplateSelector", InitType(assemblies[4], "System.Windows.Controls", "DataTemplateSelector"));
- members[KnownMembers.ItemsControl_ItemsPanel] = InitMember(KnownTypes.ItemsControl, "ItemsPanel", InitType(assemblies[4], "System.Windows.Controls", "ItemsPanelTemplate"));
- members[KnownMembers.ItemsControl_ItemsSource] = InitMember(KnownTypes.ItemsControl, "ItemsSource", InitType(assemblies[0], "System.Collections", "IEnumerable"));
- members[KnownMembers.MaterialGroup_Children] = InitMember(KnownTypes.MaterialGroup, "Children", InitType(assemblies[3], "System.Windows.Media.Media3D", "MaterialCollection"));
- members[KnownMembers.Model3DGroup_Children] = InitMember(KnownTypes.Model3DGroup, "Children", InitType(assemblies[3], "System.Windows.Media.Media3D", "Model3DCollection"));
- members[KnownMembers.Page_Content] = InitMember(KnownTypes.Page, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.Panel_Background] = InitMember(KnownTypes.Panel, "Background", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.Path_Data] = InitMember(KnownTypes.Path, "Data", InitType(assemblies[3], "System.Windows.Media", "Geometry"));
- members[KnownMembers.PathFigure_Segments] = InitMember(KnownTypes.PathFigure, "Segments", InitType(assemblies[3], "System.Windows.Media", "PathSegmentCollection"));
- members[KnownMembers.PathGeometry_Figures] = InitMember(KnownTypes.PathGeometry, "Figures", InitType(assemblies[3], "System.Windows.Media", "PathFigureCollection"));
- members[KnownMembers.Popup_Child] = InitMember(KnownTypes.Popup, "Child", InitType(assemblies[3], "System.Windows", "UIElement"));
- members[KnownMembers.Popup_IsOpen] = InitMember(KnownTypes.Popup, "IsOpen", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.Popup_Placement] = InitMember(KnownTypes.Popup, "Placement", InitType(assemblies[4], "System.Windows.Controls.Primitives", "PlacementMode"));
- members[KnownMembers.Popup_PopupAnimation] = InitMember(KnownTypes.Popup, "PopupAnimation", InitType(assemblies[4], "System.Windows.Controls.Primitives", "PopupAnimation"));
- members[KnownMembers.RowDefinition_Height] = InitMember(KnownTypes.RowDefinition, "Height", InitType(assemblies[4], "System.Windows", "GridLength"));
- members[KnownMembers.RowDefinition_MaxHeight] = InitMember(KnownTypes.RowDefinition, "MaxHeight", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.RowDefinition_MinHeight] = InitMember(KnownTypes.RowDefinition, "MinHeight", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.ScrollViewer_CanContentScroll] = InitMember(KnownTypes.ScrollViewer, "CanContentScroll", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.ScrollViewer_HorizontalScrollBarVisibility] = InitMember(KnownTypes.ScrollViewer, "HorizontalScrollBarVisibility", InitType(assemblies[4], "System.Windows.Controls", "ScrollBarVisibility"));
- members[KnownMembers.ScrollViewer_VerticalScrollBarVisibility] = InitMember(KnownTypes.ScrollViewer, "VerticalScrollBarVisibility", InitType(assemblies[4], "System.Windows.Controls", "ScrollBarVisibility"));
- members[KnownMembers.Shape_Fill] = InitMember(KnownTypes.Shape, "Fill", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.Shape_Stroke] = InitMember(KnownTypes.Shape, "Stroke", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.Shape_StrokeThickness] = InitMember(KnownTypes.Shape, "StrokeThickness", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.TextBlock_Background] = InitMember(KnownTypes.TextBlock, "Background", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.TextBlock_FontFamily] = InitMember(KnownTypes.TextBlock, "FontFamily", InitType(assemblies[3], "System.Windows.Media", "FontFamily"));
- members[KnownMembers.TextBlock_FontSize] = InitMember(KnownTypes.TextBlock, "FontSize", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.TextBlock_FontStretch] = InitMember(KnownTypes.TextBlock, "FontStretch", InitType(assemblies[3], "System.Windows", "FontStretch"));
- members[KnownMembers.TextBlock_FontStyle] = InitMember(KnownTypes.TextBlock, "FontStyle", InitType(assemblies[3], "System.Windows", "FontStyle"));
- members[KnownMembers.TextBlock_FontWeight] = InitMember(KnownTypes.TextBlock, "FontWeight", InitType(assemblies[3], "System.Windows", "FontWeight"));
- members[KnownMembers.TextBlock_Foreground] = InitMember(KnownTypes.TextBlock, "Foreground", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.TextBlock_Text] = InitMember(KnownTypes.TextBlock, "Text", InitType(assemblies[0], "System", "String"));
- members[KnownMembers.TextBlock_TextDecorations] = InitMember(KnownTypes.TextBlock, "TextDecorations", InitType(assemblies[3], "System.Windows", "TextDecorationCollection"));
- members[KnownMembers.TextBlock_TextTrimming] = InitMember(KnownTypes.TextBlock, "TextTrimming", InitType(assemblies[3], "System.Windows", "TextTrimming"));
- members[KnownMembers.TextBlock_TextWrapping] = InitMember(KnownTypes.TextBlock, "TextWrapping", InitType(assemblies[3], "System.Windows", "TextWrapping"));
- members[KnownMembers.TextBox_Text] = InitMember(KnownTypes.TextBox, "Text", InitType(assemblies[0], "System", "String"));
- members[KnownMembers.TextElement_Background] = InitMember(KnownTypes.TextElement, "Background", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.TextElement_FontFamily] = InitMember(KnownTypes.TextElement, "FontFamily", InitType(assemblies[3], "System.Windows.Media", "FontFamily"));
- members[KnownMembers.TextElement_FontSize] = InitMember(KnownTypes.TextElement, "FontSize", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.TextElement_FontStretch] = InitMember(KnownTypes.TextElement, "FontStretch", InitType(assemblies[3], "System.Windows", "FontStretch"));
- members[KnownMembers.TextElement_FontStyle] = InitMember(KnownTypes.TextElement, "FontStyle", InitType(assemblies[3], "System.Windows", "FontStyle"));
- members[KnownMembers.TextElement_FontWeight] = InitMember(KnownTypes.TextElement, "FontWeight", InitType(assemblies[3], "System.Windows", "FontWeight"));
- members[KnownMembers.TextElement_Foreground] = InitMember(KnownTypes.TextElement, "Foreground", InitType(assemblies[3], "System.Windows.Media", "Brush"));
- members[KnownMembers.TimelineGroup_Children] = InitMember(KnownTypes.TimelineGroup, "Children", InitType(assemblies[3], "System.Windows.Media.Animation", "TimelineCollection"));
- members[KnownMembers.Track_IsDirectionReversed] = InitMember(KnownTypes.Track, "IsDirectionReversed", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.Track_Maximum] = InitMember(KnownTypes.Track, "Maximum", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.Track_Minimum] = InitMember(KnownTypes.Track, "Minimum", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.Track_Orientation] = InitMember(KnownTypes.Track, "Orientation", InitType(assemblies[4], "System.Windows.Controls", "Orientation"));
- members[KnownMembers.Track_Value] = InitMember(KnownTypes.Track, "Value", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.Track_ViewportSize] = InitMember(KnownTypes.Track, "ViewportSize", InitType(assemblies[0], "System", "Double"));
- members[KnownMembers.Transform3DGroup_Children] = InitMember(KnownTypes.Transform3DGroup, "Children", InitType(assemblies[3], "System.Windows.Media.Media3D", "Transform3DCollection"));
- members[KnownMembers.TransformGroup_Children] = InitMember(KnownTypes.TransformGroup, "Children", InitType(assemblies[3], "System.Windows.Media", "TransformCollection"));
- members[KnownMembers.UIElement_ClipToBounds] = InitMember(KnownTypes.UIElement, "ClipToBounds", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.UIElement_Focusable] = InitMember(KnownTypes.UIElement, "Focusable", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.UIElement_IsEnabled] = InitMember(KnownTypes.UIElement, "IsEnabled", InitType(assemblies[0], "System", "Boolean"));
- members[KnownMembers.UIElement_RenderTransform] = InitMember(KnownTypes.UIElement, "RenderTransform", InitType(assemblies[3], "System.Windows.Media", "Transform"));
- members[KnownMembers.UIElement_Visibility] = InitMember(KnownTypes.UIElement, "Visibility", InitType(assemblies[3], "System.Windows", "Visibility"));
- members[KnownMembers.Viewport3D_Children] = InitMember(KnownTypes.Viewport3D, "Children", InitType(assemblies[3], "System.Windows.Media.Media3D", "Visual3DCollection"));
-
- members[KnownMembers.AdornedElementPlaceholder_Child] = InitMember(KnownTypes.AdornedElementPlaceholder, "Child", InitType(assemblies[3], "System.Windows", "UIElement"));
- members[KnownMembers.AdornerDecorator_Child] = InitMember(KnownTypes.AdornerDecorator, "Child", InitType(assemblies[3], "System.Windows", "UIElement"));
- members[KnownMembers.AnchoredBlock_Blocks] = InitMember(KnownTypes.AnchoredBlock, "Blocks", InitType(assemblies[4], "System.Windows.Documents", "BlockCollection"));
- members[KnownMembers.ArrayExtension_Items] = InitMember(KnownTypes.ArrayExtension, "Items", InitType(assemblies[0], "System.Collections", "IList"));
- members[KnownMembers.BlockUIContainer_Child] = InitMember(KnownTypes.BlockUIContainer, "Child", InitType(assemblies[3], "System.Windows", "UIElement"));
- members[KnownMembers.Bold_Inlines] = InitMember(KnownTypes.Bold, "Inlines", InitType(assemblies[4], "System.Windows.Documents", "InlineCollection"));
- members[KnownMembers.BooleanAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.BooleanAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "BooleanKeyFrameCollection"));
- members[KnownMembers.Border_Child] = InitMember(KnownTypes.Border, "Child", InitType(assemblies[3], "System.Windows", "UIElement"));
- members[KnownMembers.BulletDecorator_Child] = InitMember(KnownTypes.BulletDecorator, "Child", InitType(assemblies[3], "System.Windows", "UIElement"));
- members[KnownMembers.Button_Content] = InitMember(KnownTypes.Button, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.ButtonBase_Content] = InitMember(KnownTypes.ButtonBase, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.ByteAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.ByteAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "ByteKeyFrameCollection"));
- members[KnownMembers.Canvas_Children] = InitMember(KnownTypes.Canvas, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.CharAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.CharAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "CharKeyFrameCollection"));
- members[KnownMembers.CheckBox_Content] = InitMember(KnownTypes.CheckBox, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.ColorAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.ColorAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "ColorKeyFrameCollection"));
- members[KnownMembers.ComboBox_Items] = InitMember(KnownTypes.ComboBox, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.ComboBoxItem_Content] = InitMember(KnownTypes.ComboBoxItem, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.ContextMenu_Items] = InitMember(KnownTypes.ContextMenu, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.ControlTemplate_VisualTree] = InitMember(KnownTypes.ControlTemplate, "VisualTree", InitType(assemblies[4], "System.Windows", "FrameworkElementFactory"));
- members[KnownMembers.DataTemplate_VisualTree] = InitMember(KnownTypes.DataTemplate, "VisualTree", InitType(assemblies[4], "System.Windows", "FrameworkElementFactory"));
- members[KnownMembers.DataTrigger_Setters] = InitMember(KnownTypes.DataTrigger, "Setters", InitType(assemblies[4], "System.Windows", "SetterBaseCollection"));
- members[KnownMembers.DecimalAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.DecimalAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "DecimalKeyFrameCollection"));
- members[KnownMembers.Decorator_Child] = InitMember(KnownTypes.Decorator, "Child", InitType(assemblies[3], "System.Windows", "UIElement"));
- members[KnownMembers.DockPanel_Children] = InitMember(KnownTypes.DockPanel, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.DocumentViewer_Document] = InitMember(KnownTypes.DocumentViewer, "Document", InitType(assemblies[3], "System.Windows.Documents", "IDocumentPaginatorSource"));
- members[KnownMembers.DoubleAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.DoubleAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "DoubleKeyFrameCollection"));
- members[KnownMembers.EventTrigger_Actions] = InitMember(KnownTypes.EventTrigger, "Actions", InitType(assemblies[4], "System.Windows", "TriggerActionCollection"));
- members[KnownMembers.Expander_Content] = InitMember(KnownTypes.Expander, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.Figure_Blocks] = InitMember(KnownTypes.Figure, "Blocks", InitType(assemblies[4], "System.Windows.Documents", "BlockCollection"));
- members[KnownMembers.FixedDocument_Pages] = InitMember(KnownTypes.FixedDocument, "Pages", InitType(assemblies[4], "System.Windows.Documents", "PageContentCollection"));
- members[KnownMembers.FixedDocumentSequence_References] = InitMember(KnownTypes.FixedDocumentSequence, "References", InitType(assemblies[4], "System.Windows.Documents", "DocumentReferenceCollection"));
- members[KnownMembers.FixedPage_Children] = InitMember(KnownTypes.FixedPage, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.Floater_Blocks] = InitMember(KnownTypes.Floater, "Blocks", InitType(assemblies[4], "System.Windows.Documents", "BlockCollection"));
- members[KnownMembers.FlowDocument_Blocks] = InitMember(KnownTypes.FlowDocument, "Blocks", InitType(assemblies[4], "System.Windows.Documents", "BlockCollection"));
- members[KnownMembers.FlowDocumentPageViewer_Document] = InitMember(KnownTypes.FlowDocumentPageViewer, "Document", InitType(assemblies[3], "System.Windows.Documents", "IDocumentPaginatorSource"));
- members[KnownMembers.FrameworkTemplate_VisualTree] = InitMember(KnownTypes.FrameworkTemplate, "VisualTree", InitType(assemblies[4], "System.Windows", "FrameworkElementFactory"));
- members[KnownMembers.Grid_Children] = InitMember(KnownTypes.Grid, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.GridView_Columns] = InitMember(KnownTypes.GridView, "Columns", InitType(assemblies[4], "System.Windows.Controls", "GridViewColumnCollection"));
- members[KnownMembers.GridViewColumnHeader_Content] = InitMember(KnownTypes.GridViewColumnHeader, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.GroupBox_Content] = InitMember(KnownTypes.GroupBox, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.GroupItem_Content] = InitMember(KnownTypes.GroupItem, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.HeaderedContentControl_Content] = InitMember(KnownTypes.HeaderedContentControl, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.HeaderedItemsControl_Items] = InitMember(KnownTypes.HeaderedItemsControl, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.HierarchicalDataTemplate_VisualTree] = InitMember(KnownTypes.HierarchicalDataTemplate, "VisualTree", InitType(assemblies[4], "System.Windows", "FrameworkElementFactory"));
- members[KnownMembers.Hyperlink_Inlines] = InitMember(KnownTypes.Hyperlink, "Inlines", InitType(assemblies[4], "System.Windows.Documents", "InlineCollection"));
- members[KnownMembers.InkCanvas_Children] = InitMember(KnownTypes.InkCanvas, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.InkPresenter_Child] = InitMember(KnownTypes.InkPresenter, "Child", InitType(assemblies[3], "System.Windows", "UIElement"));
- members[KnownMembers.InlineUIContainer_Child] = InitMember(KnownTypes.InlineUIContainer, "Child", InitType(assemblies[3], "System.Windows", "UIElement"));
- members[KnownMembers.InputScopeName_NameValue] = InitMember(KnownTypes.InputScopeName, "NameValue", InitType(assemblies[3], "System.Windows.Input", "InputScopeNameValue"));
- members[KnownMembers.Int16AnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.Int16AnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "Int16KeyFrameCollection"));
- members[KnownMembers.Int32AnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.Int32AnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "Int32KeyFrameCollection"));
- members[KnownMembers.Int64AnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.Int64AnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "Int64KeyFrameCollection"));
- members[KnownMembers.Italic_Inlines] = InitMember(KnownTypes.Italic, "Inlines", InitType(assemblies[4], "System.Windows.Documents", "InlineCollection"));
- members[KnownMembers.ItemsControl_Items] = InitMember(KnownTypes.ItemsControl, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.ItemsPanelTemplate_VisualTree] = InitMember(KnownTypes.ItemsPanelTemplate, "VisualTree", InitType(assemblies[4], "System.Windows", "FrameworkElementFactory"));
- members[KnownMembers.Label_Content] = InitMember(KnownTypes.Label, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.LinearGradientBrush_GradientStops] = InitMember(KnownTypes.LinearGradientBrush, "GradientStops", InitType(assemblies[3], "System.Windows.Media", "GradientStopCollection"));
- members[KnownMembers.List_ListItems] = InitMember(KnownTypes.List, "ListItems", InitType(assemblies[4], "System.Windows.Documents", "ListItemCollection"));
- members[KnownMembers.ListBox_Items] = InitMember(KnownTypes.ListBox, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.ListBoxItem_Content] = InitMember(KnownTypes.ListBoxItem, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.ListItem_Blocks] = InitMember(KnownTypes.ListItem, "Blocks", InitType(assemblies[4], "System.Windows.Documents", "BlockCollection"));
- members[KnownMembers.ListView_Items] = InitMember(KnownTypes.ListView, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.ListViewItem_Content] = InitMember(KnownTypes.ListViewItem, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.MatrixAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.MatrixAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "MatrixKeyFrameCollection"));
- members[KnownMembers.Menu_Items] = InitMember(KnownTypes.Menu, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.MenuBase_Items] = InitMember(KnownTypes.MenuBase, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.MenuItem_Items] = InitMember(KnownTypes.MenuItem, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.ModelVisual3D_Children] = InitMember(KnownTypes.ModelVisual3D, "Children", InitType(assemblies[3], "System.Windows.Media.Media3D", "Visual3DCollection"));
- members[KnownMembers.MultiBinding_Bindings] = InitMember(KnownTypes.MultiBinding, "Bindings", InitType(assemblies[0], "System.Collections.ObjectModel", "Collection`1"));
- members[KnownMembers.MultiDataTrigger_Setters] = InitMember(KnownTypes.MultiDataTrigger, "Setters", InitType(assemblies[4], "System.Windows", "SetterBaseCollection"));
- members[KnownMembers.MultiTrigger_Setters] = InitMember(KnownTypes.MultiTrigger, "Setters", InitType(assemblies[4], "System.Windows", "SetterBaseCollection"));
- members[KnownMembers.ObjectAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.ObjectAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "ObjectKeyFrameCollection"));
- members[KnownMembers.PageContent_Child] = InitMember(KnownTypes.PageContent, "Child", InitType(assemblies[4], "System.Windows.Documents", "FixedPage"));
- members[KnownMembers.PageFunctionBase_Content] = InitMember(KnownTypes.PageFunctionBase, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.Panel_Children] = InitMember(KnownTypes.Panel, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.Paragraph_Inlines] = InitMember(KnownTypes.Paragraph, "Inlines", InitType(assemblies[4], "System.Windows.Documents", "InlineCollection"));
- members[KnownMembers.ParallelTimeline_Children] = InitMember(KnownTypes.ParallelTimeline, "Children", InitType(assemblies[3], "System.Windows.Media.Animation", "TimelineCollection"));
- members[KnownMembers.Point3DAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.Point3DAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "Point3DKeyFrameCollection"));
- members[KnownMembers.PointAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.PointAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "PointKeyFrameCollection"));
- members[KnownMembers.PriorityBinding_Bindings] = InitMember(KnownTypes.PriorityBinding, "Bindings", InitType(assemblies[0], "System.Collections.ObjectModel", "Collection`1"));
- members[KnownMembers.QuaternionAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.QuaternionAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "QuaternionKeyFrameCollection"));
- members[KnownMembers.RadialGradientBrush_GradientStops] = InitMember(KnownTypes.RadialGradientBrush, "GradientStops", InitType(assemblies[3], "System.Windows.Media", "GradientStopCollection"));
- members[KnownMembers.RadioButton_Content] = InitMember(KnownTypes.RadioButton, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.RectAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.RectAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "RectKeyFrameCollection"));
- members[KnownMembers.RepeatButton_Content] = InitMember(KnownTypes.RepeatButton, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.RichTextBox_Document] = InitMember(KnownTypes.RichTextBox, "Document", InitType(assemblies[4], "System.Windows.Documents", "FlowDocument"));
- members[KnownMembers.Rotation3DAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.Rotation3DAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "Rotation3DKeyFrameCollection"));
- members[KnownMembers.Run_Text] = InitMember(KnownTypes.Run, "Text", InitType(assemblies[0], "System", "String"));
- members[KnownMembers.ScrollViewer_Content] = InitMember(KnownTypes.ScrollViewer, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.Section_Blocks] = InitMember(KnownTypes.Section, "Blocks", InitType(assemblies[4], "System.Windows.Documents", "BlockCollection"));
- members[KnownMembers.Selector_Items] = InitMember(KnownTypes.Selector, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.SingleAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.SingleAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "SingleKeyFrameCollection"));
- members[KnownMembers.SizeAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.SizeAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "SizeKeyFrameCollection"));
- members[KnownMembers.Span_Inlines] = InitMember(KnownTypes.Span, "Inlines", InitType(assemblies[4], "System.Windows.Documents", "InlineCollection"));
- members[KnownMembers.StackPanel_Children] = InitMember(KnownTypes.StackPanel, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.StatusBar_Items] = InitMember(KnownTypes.StatusBar, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.StatusBarItem_Content] = InitMember(KnownTypes.StatusBarItem, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.Storyboard_Children] = InitMember(KnownTypes.Storyboard, "Children", InitType(assemblies[3], "System.Windows.Media.Animation", "TimelineCollection"));
- members[KnownMembers.StringAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.StringAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "StringKeyFrameCollection"));
- members[KnownMembers.Style_Setters] = InitMember(KnownTypes.Style, "Setters", InitType(assemblies[4], "System.Windows", "SetterBaseCollection"));
- members[KnownMembers.TabControl_Items] = InitMember(KnownTypes.TabControl, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.TabItem_Content] = InitMember(KnownTypes.TabItem, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.TabPanel_Children] = InitMember(KnownTypes.TabPanel, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.Table_RowGroups] = InitMember(KnownTypes.Table, "RowGroups", InitType(assemblies[4], "System.Windows.Documents", "TableRowGroupCollection"));
- members[KnownMembers.TableCell_Blocks] = InitMember(KnownTypes.TableCell, "Blocks", InitType(assemblies[4], "System.Windows.Documents", "BlockCollection"));
- members[KnownMembers.TableRow_Cells] = InitMember(KnownTypes.TableRow, "Cells", InitType(assemblies[4], "System.Windows.Documents", "TableCellCollection"));
- members[KnownMembers.TableRowGroup_Rows] = InitMember(KnownTypes.TableRowGroup, "Rows", InitType(assemblies[4], "System.Windows.Documents", "TableRowCollection"));
- members[KnownMembers.TextBlock_Inlines] = InitMember(KnownTypes.TextBlock, "Inlines", InitType(assemblies[4], "System.Windows.Documents", "InlineCollection"));
- members[KnownMembers.ThicknessAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.ThicknessAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[4], "System.Windows.Media.Animation", "ThicknessKeyFrameCollection"));
- members[KnownMembers.ToggleButton_Content] = InitMember(KnownTypes.ToggleButton, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.ToolBar_Items] = InitMember(KnownTypes.ToolBar, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.ToolBarOverflowPanel_Children] = InitMember(KnownTypes.ToolBarOverflowPanel, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.ToolBarPanel_Children] = InitMember(KnownTypes.ToolBarPanel, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.ToolBarTray_ToolBars] = InitMember(KnownTypes.ToolBarTray, "ToolBars", InitType(assemblies[0], "System.Collections.ObjectModel", "Collection`1"));
- members[KnownMembers.ToolTip_Content] = InitMember(KnownTypes.ToolTip, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.TreeView_Items] = InitMember(KnownTypes.TreeView, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.TreeViewItem_Items] = InitMember(KnownTypes.TreeViewItem, "Items", InitType(assemblies[4], "System.Windows.Controls", "ItemCollection"));
- members[KnownMembers.Trigger_Setters] = InitMember(KnownTypes.Trigger, "Setters", InitType(assemblies[4], "System.Windows", "SetterBaseCollection"));
- members[KnownMembers.Underline_Inlines] = InitMember(KnownTypes.Underline, "Inlines", InitType(assemblies[4], "System.Windows.Documents", "InlineCollection"));
- members[KnownMembers.UniformGrid_Children] = InitMember(KnownTypes.UniformGrid, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.UserControl_Content] = InitMember(KnownTypes.UserControl, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.Vector3DAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.Vector3DAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "Vector3DKeyFrameCollection"));
- members[KnownMembers.VectorAnimationUsingKeyFrames_KeyFrames] = InitMember(KnownTypes.VectorAnimationUsingKeyFrames, "KeyFrames", InitType(assemblies[3], "System.Windows.Media.Animation", "VectorKeyFrameCollection"));
- members[KnownMembers.Viewbox_Child] = InitMember(KnownTypes.Viewbox, "Child", InitType(assemblies[3], "System.Windows", "UIElement"));
- members[KnownMembers.Viewport3DVisual_Children] = InitMember(KnownTypes.Viewport3DVisual, "Children", InitType(assemblies[3], "System.Windows.Media.Media3D", "Visual3DCollection"));
- members[KnownMembers.VirtualizingPanel_Children] = InitMember(KnownTypes.VirtualizingPanel, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.VirtualizingStackPanel_Children] = InitMember(KnownTypes.VirtualizingStackPanel, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.Window_Content] = InitMember(KnownTypes.Window, "Content", InitType(assemblies[0], "System", "Object"));
- members[KnownMembers.WrapPanel_Children] = InitMember(KnownTypes.WrapPanel, "Children", InitType(assemblies[4], "System.Windows.Controls", "UIElementCollection"));
- members[KnownMembers.XmlDataProvider_XmlSerializer] = InitMember(KnownTypes.XmlDataProvider, "XmlSerializer", InitType(assemblies[5], "System.Xml.Serialization", "IXmlSerializable"));
- }
-
- void InitStrings() {
- strings[1] = "Name";
- strings[2] = "Uid";
- }
-
- void InitResources() {
-
- resources[1] = ("SystemColors", "ActiveBorderBrushKey", "ActiveBorderBrush");
- resources[2] = ("SystemColors", "ActiveCaptionBrushKey", "ActiveCaptionBrush");
- resources[3] = ("SystemColors", "ActiveCaptionTextBrushKey", "ActiveCaptionTextBrush");
- resources[4] = ("SystemColors", "AppWorkspaceBrushKey", "AppWorkspaceBrush");
- resources[5] = ("SystemColors", "ControlBrushKey", "ControlBrush");
- resources[6] = ("SystemColors", "ControlDarkBrushKey", "ControlDarkBrush");
- resources[7] = ("SystemColors", "ControlDarkDarkBrushKey", "ControlDarkDarkBrush");
- resources[8] = ("SystemColors", "ControlLightBrushKey", "ControlLightBrush");
- resources[9] = ("SystemColors", "ControlLightLightBrushKey", "ControlLightLightBrush");
- resources[10] = ("SystemColors", "ControlTextBrushKey", "ControlTextBrush");
- resources[11] = ("SystemColors", "DesktopBrushKey", "DesktopBrush");
- resources[12] = ("SystemColors", "GradientActiveCaptionBrushKey", "GradientActiveCaptionBrush");
- resources[13] = ("SystemColors", "GradientInactiveCaptionBrushKey", "GradientInactiveCaptionBrush");
- resources[14] = ("SystemColors", "GrayTextBrushKey", "GrayTextBrush");
- resources[15] = ("SystemColors", "HighlightBrushKey", "HighlightBrush");
- resources[16] = ("SystemColors", "HighlightTextBrushKey", "HighlightTextBrush");
- resources[17] = ("SystemColors", "HotTrackBrushKey", "HotTrackBrush");
- resources[18] = ("SystemColors", "InactiveBorderBrushKey", "InactiveBorderBrush");
- resources[19] = ("SystemColors", "InactiveCaptionBrushKey", "InactiveCaptionBrush");
- resources[20] = ("SystemColors", "InactiveCaptionTextBrushKey", "InactiveCaptionTextBrush");
- resources[21] = ("SystemColors", "InfoBrushKey", "InfoBrush");
- resources[22] = ("SystemColors", "InfoTextBrushKey", "InfoTextBrush");
- resources[23] = ("SystemColors", "MenuBrushKey", "MenuBrush");
- resources[24] = ("SystemColors", "MenuBarBrushKey", "MenuBarBrush");
- resources[25] = ("SystemColors", "MenuHighlightBrushKey", "MenuHighlightBrush");
- resources[26] = ("SystemColors", "MenuTextBrushKey", "MenuTextBrush");
- resources[27] = ("SystemColors", "ScrollBarBrushKey", "ScrollBarBrush");
- resources[28] = ("SystemColors", "WindowBrushKey", "WindowBrush");
- resources[29] = ("SystemColors", "WindowFrameBrushKey", "WindowFrameBrush");
- resources[30] = ("SystemColors", "WindowTextBrushKey", "WindowTextBrush");
- resources[31] = ("SystemColors", "ActiveBorderColorKey", "ActiveBorderColor");
- resources[32] = ("SystemColors", "ActiveCaptionColorKey", "ActiveCaptionColor");
- resources[33] = ("SystemColors", "ActiveCaptionTextColorKey", "ActiveCaptionTextColor");
- resources[34] = ("SystemColors", "AppWorkspaceColorKey", "AppWorkspaceColor");
- resources[35] = ("SystemColors", "ControlColorKey", "ControlColor");
- resources[36] = ("SystemColors", "ControlDarkColorKey", "ControlDarkColor");
- resources[37] = ("SystemColors", "ControlDarkDarkColorKey", "ControlDarkDarkColor");
- resources[38] = ("SystemColors", "ControlLightColorKey", "ControlLightColor");
- resources[39] = ("SystemColors", "ControlLightLightColorKey", "ControlLightLightColor");
- resources[40] = ("SystemColors", "ControlTextColorKey", "ControlTextColor");
- resources[41] = ("SystemColors", "DesktopColorKey", "DesktopColor");
- resources[42] = ("SystemColors", "GradientActiveCaptionColorKey", "GradientActiveCaptionColor");
- resources[43] = ("SystemColors", "GradientInactiveCaptionColorKey", "GradientInactiveCaptionColor");
- resources[44] = ("SystemColors", "GrayTextColorKey", "GrayTextColor");
- resources[45] = ("SystemColors", "HighlightColorKey", "HighlightColor");
- resources[46] = ("SystemColors", "HighlightTextColorKey", "HighlightTextColor");
- resources[47] = ("SystemColors", "HotTrackColorKey", "HotTrackColor");
- resources[48] = ("SystemColors", "InactiveBorderColorKey", "InactiveBorderColor");
- resources[49] = ("SystemColors", "InactiveCaptionColorKey", "InactiveCaptionColor");
- resources[50] = ("SystemColors", "InactiveCaptionTextColorKey", "InactiveCaptionTextColor");
- resources[51] = ("SystemColors", "InfoColorKey", "InfoColor");
- resources[52] = ("SystemColors", "InfoTextColorKey", "InfoTextColor");
- resources[53] = ("SystemColors", "MenuColorKey", "MenuColor");
- resources[54] = ("SystemColors", "MenuBarColorKey", "MenuBarColor");
- resources[55] = ("SystemColors", "MenuHighlightColorKey", "MenuHighlightColor");
- resources[56] = ("SystemColors", "MenuTextColorKey", "MenuTextColor");
- resources[57] = ("SystemColors", "ScrollBarColorKey", "ScrollBarColor");
- resources[58] = ("SystemColors", "WindowColorKey", "WindowColor");
- resources[59] = ("SystemColors", "WindowFrameColorKey", "WindowFrameColor");
- resources[60] = ("SystemColors", "WindowTextColorKey", "WindowTextColor");
-
-
- resources[63] = ("SystemFonts", "CaptionFontSizeKey", "CaptionFontSize");
- resources[64] = ("SystemFonts", "CaptionFontFamilyKey", "CaptionFontFamily");
- resources[65] = ("SystemFonts", "CaptionFontStyleKey", "CaptionFontStyle");
- resources[66] = ("SystemFonts", "CaptionFontWeightKey", "CaptionFontWeight");
- resources[67] = ("SystemFonts", "CaptionFontTextDecorationsKey", "CaptionFontTextDecorations");
- resources[68] = ("SystemFonts", "SmallCaptionFontSizeKey", "SmallCaptionFontSize");
- resources[69] = ("SystemFonts", "SmallCaptionFontFamilyKey", "SmallCaptionFontFamily");
- resources[70] = ("SystemFonts", "SmallCaptionFontStyleKey", "SmallCaptionFontStyle");
- resources[71] = ("SystemFonts", "SmallCaptionFontWeightKey", "SmallCaptionFontWeight");
- resources[72] = ("SystemFonts", "SmallCaptionFontTextDecorationsKey", "SmallCaptionFontTextDecorations");
- resources[73] = ("SystemFonts", "MenuFontSizeKey", "MenuFontSize");
- resources[74] = ("SystemFonts", "MenuFontFamilyKey", "MenuFontFamily");
- resources[75] = ("SystemFonts", "MenuFontStyleKey", "MenuFontStyle");
- resources[76] = ("SystemFonts", "MenuFontWeightKey", "MenuFontWeight");
- resources[77] = ("SystemFonts", "MenuFontTextDecorationsKey", "MenuFontTextDecorations");
- resources[78] = ("SystemFonts", "StatusFontSizeKey", "StatusFontSize");
- resources[79] = ("SystemFonts", "StatusFontFamilyKey", "StatusFontFamily");
- resources[80] = ("SystemFonts", "StatusFontStyleKey", "StatusFontStyle");
- resources[81] = ("SystemFonts", "StatusFontWeightKey", "StatusFontWeight");
- resources[82] = ("SystemFonts", "StatusFontTextDecorationsKey", "StatusFontTextDecorations");
- resources[83] = ("SystemFonts", "MessageFontSizeKey", "MessageFontSize");
- resources[84] = ("SystemFonts", "MessageFontFamilyKey", "MessageFontFamily");
- resources[85] = ("SystemFonts", "MessageFontStyleKey", "MessageFontStyle");
- resources[86] = ("SystemFonts", "MessageFontWeightKey", "MessageFontWeight");
- resources[87] = ("SystemFonts", "MessageFontTextDecorationsKey", "MessageFontTextDecorations");
- resources[88] = ("SystemFonts", "IconFontSizeKey", "IconFontSize");
- resources[89] = ("SystemFonts", "IconFontFamilyKey", "IconFontFamily");
- resources[90] = ("SystemFonts", "IconFontStyleKey", "IconFontStyle");
- resources[91] = ("SystemFonts", "IconFontWeightKey", "IconFontWeight");
- resources[92] = ("SystemFonts", "IconFontTextDecorationsKey", "IconFontTextDecorations");
-
-
- resources[95] = ("SystemParameters", "ThinHorizontalBorderHeightKey", "ThinHorizontalBorderHeight");
- resources[96] = ("SystemParameters", "ThinVerticalBorderWidthKey", "ThinVerticalBorderWidth");
- resources[97] = ("SystemParameters", "CursorWidthKey", "CursorWidth");
- resources[98] = ("SystemParameters", "CursorHeightKey", "CursorHeight");
- resources[99] = ("SystemParameters", "ThickHorizontalBorderHeightKey", "ThickHorizontalBorderHeight");
- resources[100] = ("SystemParameters", "ThickVerticalBorderWidthKey", "ThickVerticalBorderWidth");
- resources[101] = ("SystemParameters", "FixedFrameHorizontalBorderHeightKey", "FixedFrameHorizontalBorderHeight");
- resources[102] = ("SystemParameters", "FixedFrameVerticalBorderWidthKey", "FixedFrameVerticalBorderWidth");
- resources[103] = ("SystemParameters", "FocusHorizontalBorderHeightKey", "FocusHorizontalBorderHeight");
- resources[104] = ("SystemParameters", "FocusVerticalBorderWidthKey", "FocusVerticalBorderWidth");
- resources[105] = ("SystemParameters", "FullPrimaryScreenWidthKey", "FullPrimaryScreenWidth");
- resources[106] = ("SystemParameters", "FullPrimaryScreenHeightKey", "FullPrimaryScreenHeight");
- resources[107] = ("SystemParameters", "HorizontalScrollBarButtonWidthKey", "HorizontalScrollBarButtonWidth");
- resources[108] = ("SystemParameters", "HorizontalScrollBarHeightKey", "HorizontalScrollBarHeight");
- resources[109] = ("SystemParameters", "HorizontalScrollBarThumbWidthKey", "HorizontalScrollBarThumbWidth");
- resources[110] = ("SystemParameters", "IconWidthKey", "IconWidth");
- resources[111] = ("SystemParameters", "IconHeightKey", "IconHeight");
- resources[112] = ("SystemParameters", "IconGridWidthKey", "IconGridWidth");
- resources[113] = ("SystemParameters", "IconGridHeightKey", "IconGridHeight");
- resources[114] = ("SystemParameters", "MaximizedPrimaryScreenWidthKey", "MaximizedPrimaryScreenWidth");
- resources[115] = ("SystemParameters", "MaximizedPrimaryScreenHeightKey", "MaximizedPrimaryScreenHeight");
- resources[116] = ("SystemParameters", "MaximumWindowTrackWidthKey", "MaximumWindowTrackWidth");
- resources[117] = ("SystemParameters", "MaximumWindowTrackHeightKey", "MaximumWindowTrackHeight");
- resources[118] = ("SystemParameters", "MenuCheckmarkWidthKey", "MenuCheckmarkWidth");
- resources[119] = ("SystemParameters", "MenuCheckmarkHeightKey", "MenuCheckmarkHeight");
- resources[120] = ("SystemParameters", "MenuButtonWidthKey", "MenuButtonWidth");
- resources[121] = ("SystemParameters", "MenuButtonHeightKey", "MenuButtonHeight");
- resources[122] = ("SystemParameters", "MinimumWindowWidthKey", "MinimumWindowWidth");
- resources[123] = ("SystemParameters", "MinimumWindowHeightKey", "MinimumWindowHeight");
- resources[124] = ("SystemParameters", "MinimizedWindowWidthKey", "MinimizedWindowWidth");
- resources[125] = ("SystemParameters", "MinimizedWindowHeightKey", "MinimizedWindowHeight");
- resources[126] = ("SystemParameters", "MinimizedGridWidthKey", "MinimizedGridWidth");
- resources[127] = ("SystemParameters", "MinimizedGridHeightKey", "MinimizedGridHeight");
- resources[128] = ("SystemParameters", "MinimumWindowTrackWidthKey", "MinimumWindowTrackWidth");
- resources[129] = ("SystemParameters", "MinimumWindowTrackHeightKey", "MinimumWindowTrackHeight");
- resources[130] = ("SystemParameters", "PrimaryScreenWidthKey", "PrimaryScreenWidth");
- resources[131] = ("SystemParameters", "PrimaryScreenHeightKey", "PrimaryScreenHeight");
- resources[132] = ("SystemParameters", "WindowCaptionButtonWidthKey", "WindowCaptionButtonWidth");
- resources[133] = ("SystemParameters", "WindowCaptionButtonHeightKey", "WindowCaptionButtonHeight");
- resources[134] = ("SystemParameters", "ResizeFrameHorizontalBorderHeightKey", "ResizeFrameHorizontalBorderHeight");
- resources[135] = ("SystemParameters", "ResizeFrameVerticalBorderWidthKey", "ResizeFrameVerticalBorderWidth");
- resources[136] = ("SystemParameters", "SmallIconWidthKey", "SmallIconWidth");
- resources[137] = ("SystemParameters", "SmallIconHeightKey", "SmallIconHeight");
- resources[138] = ("SystemParameters", "SmallWindowCaptionButtonWidthKey", "SmallWindowCaptionButtonWidth");
- resources[139] = ("SystemParameters", "SmallWindowCaptionButtonHeightKey", "SmallWindowCaptionButtonHeight");
- resources[140] = ("SystemParameters", "VirtualScreenWidthKey", "VirtualScreenWidth");
- resources[141] = ("SystemParameters", "VirtualScreenHeightKey", "VirtualScreenHeight");
- resources[142] = ("SystemParameters", "VerticalScrollBarWidthKey", "VerticalScrollBarWidth");
- resources[143] = ("SystemParameters", "VerticalScrollBarButtonHeightKey", "VerticalScrollBarButtonHeight");
- resources[144] = ("SystemParameters", "WindowCaptionHeightKey", "WindowCaptionHeight");
- resources[145] = ("SystemParameters", "KanjiWindowHeightKey", "KanjiWindowHeight");
- resources[146] = ("SystemParameters", "MenuBarHeightKey", "MenuBarHeight");
- resources[147] = ("SystemParameters", "SmallCaptionHeightKey", "SmallCaptionHeight");
- resources[148] = ("SystemParameters", "VerticalScrollBarThumbHeightKey", "VerticalScrollBarThumbHeight");
- resources[149] = ("SystemParameters", "IsImmEnabledKey", "IsImmEnabled");
- resources[150] = ("SystemParameters", "IsMediaCenterKey", "IsMediaCenter");
- resources[151] = ("SystemParameters", "IsMenuDropRightAlignedKey", "IsMenuDropRightAligned");
- resources[152] = ("SystemParameters", "IsMiddleEastEnabledKey", "IsMiddleEastEnabled");
- resources[153] = ("SystemParameters", "IsMousePresentKey", "IsMousePresent");
- resources[154] = ("SystemParameters", "IsMouseWheelPresentKey", "IsMouseWheelPresent");
- resources[155] = ("SystemParameters", "IsPenWindowsKey", "IsPenWindows");
- resources[156] = ("SystemParameters", "IsRemotelyControlledKey", "IsRemotelyControlled");
- resources[157] = ("SystemParameters", "IsRemoteSessionKey", "IsRemoteSession");
- resources[158] = ("SystemParameters", "ShowSoundsKey", "ShowSounds");
- resources[159] = ("SystemParameters", "IsSlowMachineKey", "IsSlowMachine");
- resources[160] = ("SystemParameters", "SwapButtonsKey", "SwapButtons");
- resources[161] = ("SystemParameters", "IsTabletPCKey", "IsTabletPC");
- resources[162] = ("SystemParameters", "VirtualScreenLeftKey", "VirtualScreenLeft");
- resources[163] = ("SystemParameters", "VirtualScreenTopKey", "VirtualScreenTop");
- resources[164] = ("SystemParameters", "FocusBorderWidthKey", "FocusBorderWidth");
- resources[165] = ("SystemParameters", "FocusBorderHeightKey", "FocusBorderHeight");
- resources[166] = ("SystemParameters", "HighContrastKey", "HighContrast");
- resources[167] = ("SystemParameters", "DropShadowKey", "DropShadow");
- resources[168] = ("SystemParameters", "FlatMenuKey", "FlatMenu");
- resources[169] = ("SystemParameters", "WorkAreaKey", "WorkArea");
- resources[170] = ("SystemParameters", "IconHorizontalSpacingKey", "IconHorizontalSpacing");
- resources[171] = ("SystemParameters", "IconVerticalSpacingKey", "IconVerticalSpacing");
- resources[172] = ("SystemParameters", "IconTitleWrapKey", "IconTitleWrap");
- resources[173] = ("SystemParameters", "KeyboardCuesKey", "KeyboardCues");
- resources[174] = ("SystemParameters", "KeyboardDelayKey", "KeyboardDelay");
- resources[175] = ("SystemParameters", "KeyboardPreferenceKey", "KeyboardPreference");
- resources[176] = ("SystemParameters", "KeyboardSpeedKey", "KeyboardSpeed");
- resources[177] = ("SystemParameters", "SnapToDefaultButtonKey", "SnapToDefaultButton");
- resources[178] = ("SystemParameters", "WheelScrollLinesKey", "WheelScrollLines");
- resources[179] = ("SystemParameters", "MouseHoverTimeKey", "MouseHoverTime");
- resources[180] = ("SystemParameters", "MouseHoverHeightKey", "MouseHoverHeight");
- resources[181] = ("SystemParameters", "MouseHoverWidthKey", "MouseHoverWidth");
- resources[182] = ("SystemParameters", "MenuDropAlignmentKey", "MenuDropAlignment");
- resources[183] = ("SystemParameters", "MenuFadeKey", "MenuFade");
- resources[184] = ("SystemParameters", "MenuShowDelayKey", "MenuShowDelay");
- resources[185] = ("SystemParameters", "ComboBoxAnimationKey", "ComboBoxAnimation");
- resources[186] = ("SystemParameters", "ClientAreaAnimationKey", "ClientAreaAnimation");
- resources[187] = ("SystemParameters", "CursorShadowKey", "CursorShadow");
- resources[188] = ("SystemParameters", "GradientCaptionsKey", "GradientCaptions");
- resources[189] = ("SystemParameters", "HotTrackingKey", "HotTracking");
- resources[190] = ("SystemParameters", "ListBoxSmoothScrollingKey", "ListBoxSmoothScrolling");
- resources[191] = ("SystemParameters", "MenuAnimationKey", "MenuAnimation");
- resources[192] = ("SystemParameters", "SelectionFadeKey", "SelectionFade");
- resources[193] = ("SystemParameters", "StylusHotTrackingKey", "StylusHotTracking");
- resources[194] = ("SystemParameters", "ToolTipAnimationKey", "ToolTipAnimation");
- resources[195] = ("SystemParameters", "ToolTipFadeKey", "ToolTipFade");
- resources[196] = ("SystemParameters", "UIEffectsKey", "UIEffects");
- resources[197] = ("SystemParameters", "MinimizeAnimationKey", "MinimizeAnimation");
- resources[198] = ("SystemParameters", "BorderKey", "Border");
- resources[199] = ("SystemParameters", "CaretWidthKey", "CaretWidth");
- resources[200] = ("SystemParameters", "ForegroundFlashCountKey", "ForegroundFlashCount");
- resources[201] = ("SystemParameters", "DragFullWindowsKey", "DragFullWindows");
- resources[202] = ("SystemParameters", "BorderWidthKey", "BorderWidth");
- resources[203] = ("SystemParameters", "ScrollWidthKey", "ScrollWidth");
- resources[204] = ("SystemParameters", "ScrollHeightKey", "ScrollHeight");
- resources[205] = ("SystemParameters", "CaptionWidthKey", "CaptionWidth");
- resources[206] = ("SystemParameters", "CaptionHeightKey", "CaptionHeight");
- resources[207] = ("SystemParameters", "SmallCaptionWidthKey", "SmallCaptionWidth");
- resources[208] = ("SystemParameters", "MenuWidthKey", "MenuWidth");
- resources[209] = ("SystemParameters", "MenuHeightKey", "MenuHeight");
- resources[210] = ("SystemParameters", "ComboBoxPopupAnimationKey", "ComboBoxPopupAnimation");
- resources[211] = ("SystemParameters", "MenuPopupAnimationKey", "MenuPopupAnimation");
- resources[212] = ("SystemParameters", "ToolTipPopupAnimationKey", "ToolTipPopupAnimation");
- resources[213] = ("SystemParameters", "PowerLineStatusKey", "PowerLineStatus");
-
- resources[215] = ("SystemParameters", "FocusVisualStyleKey", "FocusVisualStyle");
- resources[216] = ("SystemParameters", "NavigationChromeDownLevelStyleKey", "NavigationChromeDownLevelStyle");
- resources[217] = ("SystemParameters", "NavigationChromeStyleKey", "NavigationChromeStyle");
-
- resources[219] = ("MenuItem", "SeparatorStyleKey", "MenuItemSeparatorStyle");
- resources[220] = ("GridView", "GridViewScrollViewerStyleKey", "GridViewScrollViewerStyle");
- resources[221] = ("GridView", "GridViewStyleKey", "GridViewStyle");
- resources[222] = ("GridView", "GridViewItemContainerStyleKey", "GridViewItemContainerStyle");
- resources[223] = ("StatusBar", "SeparatorStyleKey", "StatusBarSeparatorStyle");
- resources[224] = ("ToolBar", "ButtonStyleKey", "ToolBarButtonStyle");
- resources[225] = ("ToolBar", "ToggleButtonStyleKey", "ToolBarToggleButtonStyle");
- resources[226] = ("ToolBar", "SeparatorStyleKey", "ToolBarSeparatorStyle");
- resources[227] = ("ToolBar", "CheckBoxStyleKey", "ToolBarCheckBoxStyle");
- resources[228] = ("ToolBar", "RadioButtonStyleKey", "ToolBarRadioButtonStyle");
- resources[229] = ("ToolBar", "ComboBoxStyleKey", "ToolBarComboBoxStyle");
- resources[230] = ("ToolBar", "TextBoxStyleKey", "ToolBarTextBoxStyle");
- resources[231] = ("ToolBar", "MenuStyleKey", "ToolBarMenuStyle");
-
-
- resources[234] = ("SystemColors", "InactiveSelectionHighlightBrushKey", "InactiveSelectionHighlightBrush");
- resources[235] = ("SystemColors", "InactiveSelectionHighlightTextBrushKey", "InactiveSelectionHighlightTextBrush");
-
- }
-
-
diff --git a/ILSpy.BamlDecompiler/Handlers/Blocks/KeyElementStartHandler.cs b/ILSpy.BamlDecompiler/Handlers/Blocks/KeyElementStartHandler.cs
index 12d0c22fe..f5844bd41 100644
--- a/ILSpy.BamlDecompiler/Handlers/Blocks/KeyElementStartHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Blocks/KeyElementStartHandler.cs
@@ -38,7 +38,7 @@ namespace ILSpy.BamlDecompiler.Handlers {
var key = (XamlResourceKey)node.Annotation;
var bamlElem = new BamlElement(node);
- bamlElem.Xaml = new XElement(ctx.GetXamlNsName("Key", parent.Xaml));
+ bamlElem.Xaml = new XElement(ctx.GetKnownNamespace("Key", XamlContext.KnownNamespace_Xaml, parent.Xaml));
parent.Xaml.Element.Add(bamlElem.Xaml.Element);
key.KeyElement = bamlElem;
base.Translate(ctx, node, bamlElem);
diff --git a/ILSpy.BamlDecompiler/Handlers/Records/ConstructorParameterTypeHandler.cs b/ILSpy.BamlDecompiler/Handlers/Records/ConstructorParameterTypeHandler.cs
index 7bc103727..278586687 100644
--- a/ILSpy.BamlDecompiler/Handlers/Records/ConstructorParameterTypeHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Records/ConstructorParameterTypeHandler.cs
@@ -31,7 +31,7 @@ namespace ILSpy.BamlDecompiler.Handlers {
public BamlElement Translate(XamlContext ctx, BamlNode node, BamlElement parent) {
var record = (ConstructorParameterTypeRecord)((BamlRecordNode)node).Record;
- var elem = new XElement(ctx.GetXamlNsName("TypeExtension", parent.Xaml));
+ var elem = new XElement(ctx.GetKnownNamespace("TypeExtension", XamlContext.KnownNamespace_Xaml, parent.Xaml));
elem.AddAnnotation(ctx.ResolveType(0xfd4d)); // Known type - TypeExtension
var bamlElem = new BamlElement(node);
diff --git a/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeHandler.cs b/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeHandler.cs
index 221c29aa3..8b141d002 100644
--- a/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeHandler.cs
@@ -31,7 +31,7 @@ namespace ILSpy.BamlDecompiler.Handlers {
var record = (DefAttributeRecord)((BamlRecordNode)node).Record;
var attrName = ctx.ResolveString(record.NameId);
- parent.Xaml.Element.Add(new XAttribute(ctx.GetXamlNsName(attrName), record.Value));
+ parent.Xaml.Element.Add(new XAttribute(ctx.GetKnownNamespace(attrName, XamlContext.KnownNamespace_Xaml), record.Value));
return null;
}
diff --git a/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeKeyStringHandler.cs b/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeKeyStringHandler.cs
index b92a5588a..0068ba4ac 100644
--- a/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeKeyStringHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeKeyStringHandler.cs
@@ -38,7 +38,7 @@ namespace ILSpy.BamlDecompiler.Handlers {
var key = (XamlResourceKey)node.Annotation;
var bamlElem = new BamlElement(node);
- bamlElem.Xaml = new XElement(ctx.GetXamlNsName("Key", parent.Xaml));
+ bamlElem.Xaml = new XElement(ctx.GetKnownNamespace("Key", XamlContext.KnownNamespace_Xaml, parent.Xaml));
parent.Xaml.Element.Add(bamlElem.Xaml.Element);
bamlElem.Xaml.Element.Value = ctx.ResolveString(record.ValueId);
key.KeyElement = bamlElem;
diff --git a/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeKeyTypeHandler.cs b/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeKeyTypeHandler.cs
index 0b45d8583..8b6080248 100644
--- a/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeKeyTypeHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Records/DefAttributeKeyTypeHandler.cs
@@ -40,10 +40,10 @@ namespace ILSpy.BamlDecompiler.Handlers {
var key = (XamlResourceKey)node.Annotation;
var bamlElem = new BamlElement(node);
- bamlElem.Xaml = new XElement(ctx.GetXamlNsName("Key", parent.Xaml));
+ bamlElem.Xaml = new XElement(ctx.GetKnownNamespace("Key", XamlContext.KnownNamespace_Xaml, parent.Xaml));
parent.Xaml.Element.Add(bamlElem.Xaml.Element);
- var typeElem = new XElement(ctx.GetXamlNsName("TypeExtension", parent.Xaml));
+ var typeElem = new XElement(ctx.GetKnownNamespace("TypeExtension", XamlContext.KnownNamespace_Xaml, parent.Xaml));
typeElem.AddAnnotation(ctx.ResolveType(0xfd4d)); // Known type - TypeExtension
typeElem.Add(new XElement(ctx.GetPseudoName("Ctor"), typeName));
bamlElem.Xaml.Element.Add(typeElem);
diff --git a/ILSpy.BamlDecompiler/Handlers/Records/LiteralContentHandler.cs b/ILSpy.BamlDecompiler/Handlers/Records/LiteralContentHandler.cs
index d5b0e73aa..ab36554b4 100644
--- a/ILSpy.BamlDecompiler/Handlers/Records/LiteralContentHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Records/LiteralContentHandler.cs
@@ -30,7 +30,7 @@ namespace ILSpy.BamlDecompiler.Handlers {
public BamlElement Translate(XamlContext ctx, BamlNode node, BamlElement parent) {
var record = (LiteralContentRecord)((BamlRecordNode)node).Record;
- var elem = new XElement(ctx.GetXamlNsName("XData", parent.Xaml));
+ var elem = new XElement(ctx.GetKnownNamespace("XData", XamlContext.KnownNamespace_Xaml, parent.Xaml));
var content = XElement.Parse(record.Value);
elem.Add(content);
diff --git a/ILSpy.BamlDecompiler/Handlers/Records/OptimizedStaticResourceHandler.cs b/ILSpy.BamlDecompiler/Handlers/Records/OptimizedStaticResourceHandler.cs
index 64a54695b..463acedc2 100644
--- a/ILSpy.BamlDecompiler/Handlers/Records/OptimizedStaticResourceHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Records/OptimizedStaticResourceHandler.cs
@@ -43,7 +43,7 @@ namespace ILSpy.BamlDecompiler.Handlers {
if (record.IsType) {
var value = ctx.ResolveType(record.ValueId);
- var typeElem = new XElement(ctx.GetXamlNsName("TypeExtension", parent.Xaml));
+ var typeElem = new XElement(ctx.GetKnownNamespace("TypeExtension", XamlContext.KnownNamespace_Xaml, parent.Xaml));
typeElem.AddAnnotation(ctx.ResolveType(0xfd4d)); // Known type - TypeExtension
typeElem.Add(new XElement(ctx.GetPseudoName("Ctor"), ctx.ToString(parent.Xaml, value)));
key = typeElem;
@@ -82,7 +82,7 @@ namespace ILSpy.BamlDecompiler.Handlers {
attrName = ctx.ToString(parent.Xaml, xName);
}
- var staticElem = new XElement(ctx.GetXamlNsName("StaticExtension", parent.Xaml));
+ var staticElem = new XElement(ctx.GetKnownNamespace("StaticExtension", XamlContext.KnownNamespace_Xaml, parent.Xaml));
staticElem.AddAnnotation(ctx.ResolveType(0xfda6)); // Known type - StaticExtension
staticElem.Add(new XElement(ctx.GetPseudoName("Ctor"), attrName));
key = staticElem;
diff --git a/ILSpy.BamlDecompiler/Handlers/Records/PresentationOptionsAttributeHandler.cs b/ILSpy.BamlDecompiler/Handlers/Records/PresentationOptionsAttributeHandler.cs
index 01d648ef7..e0f3f728a 100644
--- a/ILSpy.BamlDecompiler/Handlers/Records/PresentationOptionsAttributeHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Records/PresentationOptionsAttributeHandler.cs
@@ -31,7 +31,7 @@ namespace ILSpy.BamlDecompiler.Handlers {
var record = (PresentationOptionsAttributeRecord)((BamlRecordNode)node).Record;
var attrName = ctx.ResolveString(record.NameId);
- var attr = new XAttribute(ctx.GetXamlNsName(attrName, parent.Xaml), record.Value);
+ var attr = new XAttribute(ctx.GetKnownNamespace(attrName, XamlContext.KnownNamespace_PresentationOptions, parent.Xaml), record.Value);
parent.Xaml.Element.Add(attr);
return null;
diff --git a/ILSpy.BamlDecompiler/Handlers/Records/PropertyCustomHandler.cs b/ILSpy.BamlDecompiler/Handlers/Records/PropertyCustomHandler.cs
index 2ae98ebfe..7c0d92d8c 100644
--- a/ILSpy.BamlDecompiler/Handlers/Records/PropertyCustomHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Records/PropertyCustomHandler.cs
@@ -47,7 +47,7 @@ namespace ILSpy.BamlDecompiler.Handlers {
case KnownTypes.DependencyPropertyConverter: {
if (value.Length == 2) {
var property = ctx.ResolveProperty(reader.ReadUInt16());
- return ctx.ToString(elem, property.ToXName(ctx, elem, false));
+ return ctx.ToString(elem, property.ToXName(ctx, elem, NeedsFullName(property, ctx, elem)));
}
else {
var type = ctx.ResolveType(reader.ReadUInt16());
@@ -142,6 +142,18 @@ namespace ILSpy.BamlDecompiler.Handlers {
throw new NotSupportedException(ser.ToString());
}
+ private bool NeedsFullName(XamlProperty property, XamlContext ctx, XElement elem)
+ {
+ XElement p = elem.Parent;
+ while (p != null && p.Annotation()?.ResolvedType.FullName != "System.Windows.Style") {
+ p = p.Parent;
+ }
+ var type = p?.Annotation()?.Type;
+ if (type == null)
+ return true;
+ return property.IsAttachedTo(type);
+ }
+
public BamlElement Translate(XamlContext ctx, BamlNode node, BamlElement parent) {
var record = (PropertyCustomRecord)((BamlRecordNode)node).Record;
var serTypeId = ((short)record.SerializerTypeId & 0xfff);
diff --git a/ILSpy.BamlDecompiler/Handlers/Records/PropertyHandler.cs b/ILSpy.BamlDecompiler/Handlers/Records/PropertyHandler.cs
index c084b76e6..822fc0627 100644
--- a/ILSpy.BamlDecompiler/Handlers/Records/PropertyHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Records/PropertyHandler.cs
@@ -45,7 +45,7 @@ namespace ILSpy.BamlDecompiler.Handlers {
return new XAttribute(xamlProp.ToXName(ctx, parent.Xaml, true), value);
if (xamlProp.PropertyName == "Name" && elemType.ResolvedType.GetDefinition()?.ParentModule.IsMainModule == true)
- return new XAttribute(ctx.GetXamlNsName("Name"), value);
+ return new XAttribute(ctx.GetKnownNamespace("Name", XamlContext.KnownNamespace_Xaml), value);
return new XAttribute(xamlProp.ToXName(ctx, parent.Xaml, false), value);
}
diff --git a/ILSpy.BamlDecompiler/Handlers/Records/PropertyTypeReferenceHandler.cs b/ILSpy.BamlDecompiler/Handlers/Records/PropertyTypeReferenceHandler.cs
index 45a94f91e..148ded0e2 100644
--- a/ILSpy.BamlDecompiler/Handlers/Records/PropertyTypeReferenceHandler.cs
+++ b/ILSpy.BamlDecompiler/Handlers/Records/PropertyTypeReferenceHandler.cs
@@ -23,6 +23,7 @@
using System.Xml.Linq;
using ILSpy.BamlDecompiler.Baml;
using ILSpy.BamlDecompiler.Xaml;
+using ICSharpCode.Decompiler.TypeSystem;
namespace ILSpy.BamlDecompiler.Handlers {
internal class PropertyTypeReferenceHandler : IHandler {
@@ -39,10 +40,14 @@ namespace ILSpy.BamlDecompiler.Handlers {
var elemAttr = ctx.ResolveProperty(record.AttributeId);
elem.Xaml = new XElement(elemAttr.ToXName(ctx, null));
+ if (attr.ResolvedMember?.FullNameIs("System.Windows.Style", "TargetType") == true) {
+ parent.Xaml.Element.AddAnnotation(new TargetTypeAnnotation(type));
+ }
+
elem.Xaml.Element.AddAnnotation(elemAttr);
parent.Xaml.Element.Add(elem.Xaml.Element);
- var typeElem = new XElement(ctx.GetXamlNsName("TypeExtension", parent.Xaml));
+ var typeElem = new XElement(ctx.GetKnownNamespace("TypeExtension", XamlContext.KnownNamespace_Xaml, parent.Xaml));
typeElem.AddAnnotation(ctx.ResolveType(0xfd4d)); // Known type - TypeExtension
typeElem.Add(new XElement(ctx.GetPseudoName("Ctor"), typeName));
elem.Xaml.Element.Add(typeElem);
@@ -53,4 +58,14 @@ namespace ILSpy.BamlDecompiler.Handlers {
return elem;
}
}
+
+ internal class TargetTypeAnnotation
+ {
+ public XamlType Type { get; }
+
+ public TargetTypeAnnotation(XamlType type)
+ {
+ this.Type = type;
+ }
+ }
}
\ No newline at end of file
diff --git a/ILSpy.BamlDecompiler/ILSpy.BamlDecompiler.csproj b/ILSpy.BamlDecompiler/ILSpy.BamlDecompiler.csproj
index 87269f706..92f6ef0ff 100644
--- a/ILSpy.BamlDecompiler/ILSpy.BamlDecompiler.csproj
+++ b/ILSpy.BamlDecompiler/ILSpy.BamlDecompiler.csproj
@@ -37,7 +37,7 @@
-
+
diff --git a/ILSpy.BamlDecompiler/Rewrite/AttributeRewritePass.cs b/ILSpy.BamlDecompiler/Rewrite/AttributeRewritePass.cs
index b8e902119..a8c5ac22b 100644
--- a/ILSpy.BamlDecompiler/Rewrite/AttributeRewritePass.cs
+++ b/ILSpy.BamlDecompiler/Rewrite/AttributeRewritePass.cs
@@ -29,7 +29,7 @@ namespace ILSpy.BamlDecompiler.Rewrite {
XName key;
public void Run(XamlContext ctx, XDocument document) {
- key = ctx.GetXamlNsName("Key");
+ key = ctx.GetKnownNamespace("Key", XamlContext.KnownNamespace_Xaml);
bool doWork;
do {
diff --git a/ILSpy.BamlDecompiler/Rewrite/ConnectionIdRewritePass.cs b/ILSpy.BamlDecompiler/Rewrite/ConnectionIdRewritePass.cs
index fe2912ff9..d4875c0af 100644
--- a/ILSpy.BamlDecompiler/Rewrite/ConnectionIdRewritePass.cs
+++ b/ILSpy.BamlDecompiler/Rewrite/ConnectionIdRewritePass.cs
@@ -59,7 +59,7 @@ namespace ILSpy.BamlDecompiler.Rewrite
{
var result = new List<(LongSet, EventRegistration[])>();
- var xClass = document.Root.Elements().First().Attribute(ctx.GetXamlNsName("Class"));
+ var xClass = document.Root.Elements().First().Attribute(ctx.GetKnownNamespace("Class", XamlContext.KnownNamespace_Xaml));
if (xClass == null)
return result;
@@ -94,7 +94,7 @@ namespace ILSpy.BamlDecompiler.Rewrite
// decompile method and optimize the switch
var ilReader = new ILReader(ctx.TypeSystem.MainModule);
- var function = ilReader.ReadIL((MethodDefinitionHandle)method.MetadataToken, body, genericContext, ctx.CancellationToken);
+ var function = ilReader.ReadIL((MethodDefinitionHandle)method.MetadataToken, body, genericContext, ILFunctionKind.TopLevelFunction, ctx.CancellationToken);
var context = new ILTransformContext(function, ctx.TypeSystem, null) {
CancellationToken = ctx.CancellationToken
diff --git a/ILSpy.BamlDecompiler/Rewrite/MarkupExtensionRewritePass.cs b/ILSpy.BamlDecompiler/Rewrite/MarkupExtensionRewritePass.cs
index e05eee62e..bd2bf8e31 100644
--- a/ILSpy.BamlDecompiler/Rewrite/MarkupExtensionRewritePass.cs
+++ b/ILSpy.BamlDecompiler/Rewrite/MarkupExtensionRewritePass.cs
@@ -31,7 +31,7 @@ namespace ILSpy.BamlDecompiler.Rewrite {
XName ctor;
public void Run(XamlContext ctx, XDocument document) {
- key = ctx.GetXamlNsName("Key");
+ key = ctx.GetKnownNamespace("Key", XamlContext.KnownNamespace_Xaml);
ctor = ctx.GetPseudoName("Ctor");
bool doWork;
@@ -77,14 +77,16 @@ namespace ILSpy.BamlDecompiler.Rewrite {
var attrName = elem.Name;
if (attrName != key)
attrName = property.ToXName(ctx, parent, property.IsAttachedTo(type));
- var attr = new XAttribute(attrName, extValue);
- var list = new List(parent.Attributes());
- if (attrName == key)
- list.Insert(0, attr);
- else
- list.Add(attr);
- parent.RemoveAttributes();
- parent.ReplaceAttributes(list);
+ if (!parent.Attributes(attrName).Any()) {
+ var attr = new XAttribute(attrName, extValue);
+ var list = new List(parent.Attributes());
+ if (attrName == key)
+ list.Insert(0, attr);
+ else
+ list.Add(attr);
+ parent.RemoveAttributes();
+ parent.ReplaceAttributes(list);
+ }
elem.Remove();
return true;
diff --git a/ILSpy.BamlDecompiler/Rewrite/XClassRewritePass.cs b/ILSpy.BamlDecompiler/Rewrite/XClassRewritePass.cs
index 332454d17..2e2d25e59 100644
--- a/ILSpy.BamlDecompiler/Rewrite/XClassRewritePass.cs
+++ b/ILSpy.BamlDecompiler/Rewrite/XClassRewritePass.cs
@@ -48,11 +48,11 @@ namespace ILSpy.BamlDecompiler.Rewrite {
elem.Name = xamlType.ToXName(ctx);
- var attrName = ctx.GetXamlNsName("Class", elem);
+ var attrName = ctx.GetKnownNamespace("Class", XamlContext.KnownNamespace_Xaml, elem);
var attrs = elem.Attributes().ToList();
if (typeDef.Accessibility != ICSharpCode.Decompiler.TypeSystem.Accessibility.Public) {
- var classModifierName = ctx.GetXamlNsName("ClassModifier", elem);
+ var classModifierName = ctx.GetKnownNamespace("ClassModifier", XamlContext.KnownNamespace_Xaml, elem);
attrs.Insert(0, new XAttribute(classModifierName, "internal"));
}
attrs.Insert(0, new XAttribute(attrName, type.ResolvedType.FullName));
diff --git a/ILSpy.BamlDecompiler/XamlContext.cs b/ILSpy.BamlDecompiler/XamlContext.cs
index 6afe81eee..50063cf6e 100644
--- a/ILSpy.BamlDecompiler/XamlContext.cs
+++ b/ILSpy.BamlDecompiler/XamlContext.cs
@@ -164,6 +164,10 @@ namespace ILSpy.BamlDecompiler {
return ns;
}
+ public const string KnownNamespace_Xaml = "http://schemas.microsoft.com/winfx/2006/xaml";
+ public const string KnownNamespace_Presentation = "http://schemas.microsoft.com/winfx/2006/xaml/presentation";
+ public const string KnownNamespace_PresentationOptions = "http://schemas.microsoft.com/winfx/2006/xaml/presentation/options";
+
public string TryGetXmlNamespace(IModule assembly, string typeNamespace) {
if (assembly == null)
return null;
@@ -184,16 +188,16 @@ namespace ILSpy.BamlDecompiler {
possibleXmlNs.Add(xmlNs);
}
- if (possibleXmlNs.Contains("http://schemas.microsoft.com/winfx/2006/xaml/presentation"))
- return "http://schemas.microsoft.com/winfx/2006/xaml/presentation";
+ if (possibleXmlNs.Contains(KnownNamespace_Presentation))
+ return KnownNamespace_Presentation;
return possibleXmlNs.FirstOrDefault();
}
- public XName GetXamlNsName(string name, XElement elem = null) {
- var xNs = GetXmlNamespace("http://schemas.microsoft.com/winfx/2006/xaml");
+ public XName GetKnownNamespace(string name, string xmlNamespace, XElement context = null) {
+ var xNs = GetXmlNamespace(xmlNamespace);
XName xName;
- if (elem != null && xNs == elem.GetDefaultNamespace())
+ if (context != null && xNs == context.GetDefaultNamespace())
xName = name;
else
xName = xNs + name;
diff --git a/ILSpy/Analyzers/AnalyzerScope.cs b/ILSpy/Analyzers/AnalyzerScope.cs
index 976491573..6a6e27344 100644
--- a/ILSpy/Analyzers/AnalyzerScope.cs
+++ b/ILSpy/Analyzers/AnalyzerScope.cs
@@ -130,6 +130,10 @@ namespace ICSharpCode.ILSpy.Analyzers
{
yield return self;
+ string reflectionTypeScopeName = typeScope.Name;
+ if (typeScope.TypeParameterCount > 0)
+ reflectionTypeScopeName += "`" + typeScope.TypeParameterCount;
+
foreach (var assembly in AssemblyList.GetAssemblies()) {
ct.ThrowIfCancellationRequested();
bool found = false;
@@ -145,7 +149,7 @@ namespace ICSharpCode.ILSpy.Analyzers
}
}
}
- if (found && ModuleReferencesScopeType(module.Metadata, typeScope.Name, typeScope.Namespace))
+ if (found && ModuleReferencesScopeType(module.Metadata, reflectionTypeScopeName, typeScope.Namespace))
yield return module;
}
}
diff --git a/ILSpy/Commands/SaveCodeContextMenuEntry.cs b/ILSpy/Commands/SaveCodeContextMenuEntry.cs
new file mode 100644
index 000000000..ef395f265
--- /dev/null
+++ b/ILSpy/Commands/SaveCodeContextMenuEntry.cs
@@ -0,0 +1,123 @@
+// Copyright (c) 2011 AlphaSierraPapa for the SharpDevelop Team
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this
+// software and associated documentation files (the "Software"), to deal in the Software
+// without restriction, including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+// to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or
+// substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Windows;
+using System.Windows.Input;
+using ICSharpCode.ILSpy.Properties;
+using ICSharpCode.ILSpy.TreeNodes;
+using ICSharpCode.TreeView;
+using Microsoft.Win32;
+
+namespace ICSharpCode.ILSpy.TextView
+{
+ [ExportContextMenuEntry(Header = nameof(Resources._SaveCode), Category = nameof(Resources.Save), Icon = "Images/SaveFile.png")]
+ sealed class SaveCodeContextMenuEntry : IContextMenuEntry
+ {
+ public void Execute(TextViewContext context)
+ {
+ Execute(context.SelectedTreeNodes);
+ }
+
+ public bool IsEnabled(TextViewContext context) => true;
+
+ public bool IsVisible(TextViewContext context)
+ {
+ return CanExecute(context.SelectedTreeNodes);
+ }
+
+ public static bool CanExecute(IReadOnlyList selectedNodes)
+ {
+ if (selectedNodes == null || selectedNodes.Any(n => !(n is ILSpyTreeNode)))
+ return false;
+ return selectedNodes.Count == 1
+ || (selectedNodes.Count > 1 && (selectedNodes.All(n => n is AssemblyTreeNode) || selectedNodes.All(n => n is IMemberTreeNode)));
+ }
+
+ public static void Execute(IReadOnlyList selectedNodes)
+ {
+ var currentLanguage = MainWindow.Instance.CurrentLanguage;
+ var textView = MainWindow.Instance.TextView;
+ if (selectedNodes.Count == 1 && selectedNodes[0] is ILSpyTreeNode singleSelection) {
+ // if there's only one treenode selected
+ // we will invoke the custom Save logic
+ if (singleSelection.Save(textView))
+ return;
+ } else if (selectedNodes.Count > 1 && selectedNodes.All(n => n is AssemblyTreeNode)) {
+ var selectedPath = SelectSolutionFile();
+
+ if (!string.IsNullOrEmpty(selectedPath)) {
+ var assemblies = selectedNodes.OfType()
+ .Select(n => n.LoadedAssembly)
+ .Where(a => !a.HasLoadError).ToArray();
+ SolutionWriter.CreateSolution(textView, selectedPath, currentLanguage, assemblies);
+ }
+ return;
+ }
+
+ // Fallback: if nobody was able to handle the request, use default behavior.
+ // try to save all nodes to disk.
+ var options = new DecompilationOptions() { FullDecompilation = true };
+ textView.SaveToDisk(currentLanguage, selectedNodes.OfType(), options);
+ }
+
+ ///
+ /// Shows a File Selection dialog where the user can select the target file for the solution.
+ ///
+ /// The initial path to show in the dialog. If not specified, the 'Documents' directory
+ /// will be used.
+ ///
+ /// The full path of the selected target file, or null if the user canceled.
+ static string SelectSolutionFile()
+ {
+ SaveFileDialog dlg = new SaveFileDialog();
+ dlg.FileName = "Solution.sln";
+ dlg.Filter = "Visual Studio Solution file|*.sln|All files|*.*";
+
+ if (dlg.ShowDialog() != true) {
+ return null;
+ }
+
+ string selectedPath = Path.GetDirectoryName(dlg.FileName);
+ bool directoryNotEmpty;
+ try {
+ directoryNotEmpty = Directory.EnumerateFileSystemEntries(selectedPath).Any();
+ } catch (Exception e) when (e is IOException || e is UnauthorizedAccessException || e is System.Security.SecurityException) {
+ MessageBox.Show(
+ "The directory cannot be accessed. Please ensure it exists and you have sufficient rights to access it.",
+ "Solution directory not accessible",
+ MessageBoxButton.OK, MessageBoxImage.Error);
+ return null;
+ }
+
+ if (directoryNotEmpty) {
+ var result = MessageBox.Show(
+ Resources.AssemblySaveCodeDirectoryNotEmpty,
+ Resources.AssemblySaveCodeDirectoryNotEmptyTitle,
+ MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
+ if (result == MessageBoxResult.No)
+ return null; // -> abort
+ }
+
+ return dlg.FileName;
+ }
+ }
+}
diff --git a/ILSpy/GacInterop.cs b/ILSpy/GacInterop.cs
index a260a9daf..7955b37c8 100644
--- a/ILSpy/GacInterop.cs
+++ b/ILSpy/GacInterop.cs
@@ -20,6 +20,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
+using System.Windows;
using ICSharpCode.Decompiler.Metadata;
namespace ICSharpCode.ILSpy
@@ -38,7 +39,11 @@ namespace ICSharpCode.ILSpy
IAssemblyEnum assemblyEnum = null;
IAssemblyName assemblyName = null;
- Fusion.CreateAssemblyEnum(out assemblyEnum, null, null, 2, 0);
+ uint result = unchecked((uint)Fusion.CreateAssemblyEnum(out assemblyEnum, null, null, 2, 0));
+ if (result == 0x80070005) {
+ MessageBox.Show($"Cannot access GAC, please restart with elevated privileges! (HRESULT 0x{result:X})", "ILSpy", MessageBoxButton.OK, MessageBoxImage.Error);
+ yield break;
+ }
while (assemblyEnum.GetNextAssembly(out applicationContext, out assemblyName, 0) == 0) {
if (assemblyName == null) continue;
uint nChars = 0;
diff --git a/ILSpy/ILSpy.csproj b/ILSpy/ILSpy.csproj
index 20d396e4a..092f5edec 100644
--- a/ILSpy/ILSpy.csproj
+++ b/ILSpy/ILSpy.csproj
@@ -49,7 +49,7 @@
-
+
@@ -141,6 +141,7 @@
+
@@ -205,9 +206,12 @@
+
+
+
@@ -265,9 +269,7 @@
-
- Always
-
+
diff --git a/ILSpy/Languages/CSharpBracketSearcher.cs b/ILSpy/Languages/CSharpBracketSearcher.cs
new file mode 100644
index 000000000..bc12dd7f5
--- /dev/null
+++ b/ILSpy/Languages/CSharpBracketSearcher.cs
@@ -0,0 +1,359 @@
+// Copyright (c) 2018 Siegfried Pammer
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this
+// software and associated documentation files (the "Software"), to deal in the Software
+// without restriction, including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+// to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or
+// substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using ICSharpCode.AvalonEdit.Document;
+using ICSharpCode.ILSpy.TextView;
+
+namespace ICSharpCode.ILSpy
+{
+ ///
+ /// Searches matching brackets for C#.
+ ///
+ class CSharpBracketSearcher : IBracketSearcher
+ {
+ string openingBrackets = "([{";
+ string closingBrackets = ")]}";
+
+ public BracketSearchResult SearchBracket(IDocument document, int offset)
+ {
+ if (offset > 0) {
+ char c = document.GetCharAt(offset - 1);
+ int index = openingBrackets.IndexOf(c);
+ int otherOffset = -1;
+ if (index > -1)
+ otherOffset = SearchBracketForward(document, offset, openingBrackets[index], closingBrackets[index]);
+
+ index = closingBrackets.IndexOf(c);
+ if (index > -1)
+ otherOffset = SearchBracketBackward(document, offset - 2, openingBrackets[index], closingBrackets[index]);
+
+ if (otherOffset > -1) {
+ var result = new BracketSearchResult(Math.Min(offset - 1, otherOffset), 1,
+ Math.Max(offset - 1, otherOffset), 1);
+ return result;
+ }
+ }
+
+ return null;
+ }
+
+ #region SearchBracket helper functions
+ static int ScanLineStart(IDocument document, int offset)
+ {
+ for (int i = offset - 1; i > 0; --i) {
+ if (document.GetCharAt(i) == '\n')
+ return i + 1;
+ }
+ return 0;
+ }
+
+ ///
+ /// Gets the type of code at offset.
+ /// 0 = Code,
+ /// 1 = Comment,
+ /// 2 = String
+ /// Block comments and multiline strings are not supported.
+ ///
+ static int GetStartType(IDocument document, int linestart, int offset)
+ {
+ bool inString = false;
+ bool inChar = false;
+ bool verbatim = false;
+ int result = 0;
+ for (int i = linestart; i < offset; i++) {
+ switch (document.GetCharAt(i)) {
+ case '/':
+ if (!inString && !inChar && i + 1 < document.TextLength) {
+ if (document.GetCharAt(i + 1) == '/') {
+ result = 1;
+ }
+ }
+ break;
+ case '"':
+ if (!inChar) {
+ if (inString && verbatim) {
+ if (i + 1 < document.TextLength && document.GetCharAt(i + 1) == '"') {
+ ++i; // skip escaped quote
+ inString = false; // let the string go on
+ } else {
+ verbatim = false;
+ }
+ } else if (!inString && i > 0 && document.GetCharAt(i - 1) == '@') {
+ verbatim = true;
+ }
+ inString = !inString;
+ }
+ break;
+ case '\'':
+ if (!inString) inChar = !inChar;
+ break;
+ case '\\':
+ if ((inString && !verbatim) || inChar)
+ ++i; // skip next character
+ break;
+ }
+ }
+
+ return (inString || inChar) ? 2 : result;
+ }
+ #endregion
+
+ #region SearchBracketBackward
+ int SearchBracketBackward(IDocument document, int offset, char openBracket, char closingBracket)
+ {
+ if (offset + 1 >= document.TextLength) return -1;
+ // this method parses a c# document backwards to find the matching bracket
+
+ // first try "quick find" - find the matching bracket if there is no string/comment in the way
+ int quickResult = QuickSearchBracketBackward(document, offset, openBracket, closingBracket);
+ if (quickResult >= 0) return quickResult;
+
+ // we need to parse the line from the beginning, so get the line start position
+ int linestart = ScanLineStart(document, offset + 1);
+
+ // we need to know where offset is - in a string/comment or in normal code?
+ // ignore cases where offset is in a block comment
+ int starttype = GetStartType(document, linestart, offset + 1);
+ if (starttype == 1) {
+ return -1; // start position is in a comment
+ }
+
+ // I don't see any possibility to parse a C# document backwards...
+ // We have to do it forwards and push all bracket positions on a stack.
+ Stack bracketStack = new Stack();
+ bool blockComment = false;
+ bool lineComment = false;
+ bool inChar = false;
+ bool inString = false;
+ bool verbatim = false;
+
+ for (int i = 0; i <= offset; ++i) {
+ char ch = document.GetCharAt(i);
+ switch (ch) {
+ case '\r':
+ case '\n':
+ lineComment = false;
+ inChar = false;
+ if (!verbatim) inString = false;
+ break;
+ case '/':
+ if (blockComment) {
+ Debug.Assert(i > 0);
+ if (document.GetCharAt(i - 1) == '*') {
+ blockComment = false;
+ }
+ }
+ if (!inString && !inChar && i + 1 < document.TextLength) {
+ if (!blockComment && document.GetCharAt(i + 1) == '/') {
+ lineComment = true;
+ }
+ if (!lineComment && document.GetCharAt(i + 1) == '*') {
+ blockComment = true;
+ }
+ }
+ break;
+ case '"':
+ if (!(inChar || lineComment || blockComment)) {
+ if (inString && verbatim) {
+ if (i + 1 < document.TextLength && document.GetCharAt(i + 1) == '"') {
+ ++i; // skip escaped quote
+ inString = false; // let the string go
+ } else {
+ verbatim = false;
+ }
+ } else if (!inString && offset > 0 && document.GetCharAt(i - 1) == '@') {
+ verbatim = true;
+ }
+ inString = !inString;
+ }
+ break;
+ case '\'':
+ if (!(inString || lineComment || blockComment)) {
+ inChar = !inChar;
+ }
+ break;
+ case '\\':
+ if ((inString && !verbatim) || inChar)
+ ++i; // skip next character
+ break;
+ default:
+ if (ch == openBracket) {
+ if (!(inString || inChar || lineComment || blockComment)) {
+ bracketStack.Push(i);
+ }
+ } else if (ch == closingBracket) {
+ if (!(inString || inChar || lineComment || blockComment)) {
+ if (bracketStack.Count > 0)
+ bracketStack.Pop();
+ }
+ }
+ break;
+ }
+ }
+ if (bracketStack.Count > 0) return (int)bracketStack.Pop();
+ return -1;
+ }
+ #endregion
+
+ #region SearchBracketForward
+ int SearchBracketForward(IDocument document, int offset, char openBracket, char closingBracket)
+ {
+ bool inString = false;
+ bool inChar = false;
+ bool verbatim = false;
+
+ bool lineComment = false;
+ bool blockComment = false;
+
+ if (offset < 0) return -1;
+
+ // first try "quick find" - find the matching bracket if there is no string/comment in the way
+ int quickResult = QuickSearchBracketForward(document, offset, openBracket, closingBracket);
+ if (quickResult >= 0) return quickResult;
+
+ // we need to parse the line from the beginning, so get the line start position
+ int linestart = ScanLineStart(document, offset);
+
+ // we need to know where offset is - in a string/comment or in normal code?
+ // ignore cases where offset is in a block comment
+ int starttype = GetStartType(document, linestart, offset);
+ if (starttype != 0) return -1; // start position is in a comment/string
+
+ int brackets = 1;
+
+ while (offset < document.TextLength) {
+ char ch = document.GetCharAt(offset);
+ switch (ch) {
+ case '\r':
+ case '\n':
+ lineComment = false;
+ inChar = false;
+ if (!verbatim) inString = false;
+ break;
+ case '/':
+ if (blockComment) {
+ Debug.Assert(offset > 0);
+ if (document.GetCharAt(offset - 1) == '*') {
+ blockComment = false;
+ }
+ }
+ if (!inString && !inChar && offset + 1 < document.TextLength) {
+ if (!blockComment && document.GetCharAt(offset + 1) == '/') {
+ lineComment = true;
+ }
+ if (!lineComment && document.GetCharAt(offset + 1) == '*') {
+ blockComment = true;
+ }
+ }
+ break;
+ case '"':
+ if (!(inChar || lineComment || blockComment)) {
+ if (inString && verbatim) {
+ if (offset + 1 < document.TextLength && document.GetCharAt(offset + 1) == '"') {
+ ++offset; // skip escaped quote
+ inString = false; // let the string go
+ } else {
+ verbatim = false;
+ }
+ } else if (!inString && offset > 0 && document.GetCharAt(offset - 1) == '@') {
+ verbatim = true;
+ }
+ inString = !inString;
+ }
+ break;
+ case '\'':
+ if (!(inString || lineComment || blockComment)) {
+ inChar = !inChar;
+ }
+ break;
+ case '\\':
+ if ((inString && !verbatim) || inChar)
+ ++offset; // skip next character
+ break;
+ default:
+ if (ch == openBracket) {
+ if (!(inString || inChar || lineComment || blockComment)) {
+ ++brackets;
+ }
+ } else if (ch == closingBracket) {
+ if (!(inString || inChar || lineComment || blockComment)) {
+ --brackets;
+ if (brackets == 0) {
+ return offset;
+ }
+ }
+ }
+ break;
+ }
+ ++offset;
+ }
+ return -1;
+ }
+ #endregion
+
+ int QuickSearchBracketBackward(IDocument document, int offset, char openBracket, char closingBracket)
+ {
+ int brackets = -1;
+ // first try "quick find" - find the matching bracket if there is no string/comment in the way
+ for (int i = offset; i >= 0; --i) {
+ char ch = document.GetCharAt(i);
+ if (ch == openBracket) {
+ ++brackets;
+ if (brackets == 0) return i;
+ } else if (ch == closingBracket) {
+ --brackets;
+ } else if (ch == '"') {
+ break;
+ } else if (ch == '\'') {
+ break;
+ } else if (ch == '/' && i > 0) {
+ if (document.GetCharAt(i - 1) == '/') break;
+ if (document.GetCharAt(i - 1) == '*') break;
+ }
+ }
+ return -1;
+ }
+
+ int QuickSearchBracketForward(IDocument document, int offset, char openBracket, char closingBracket)
+ {
+ int brackets = 1;
+ // try "quick find" - find the matching bracket if there is no string/comment in the way
+ for (int i = offset; i < document.TextLength; ++i) {
+ char ch = document.GetCharAt(i);
+ if (ch == openBracket) {
+ ++brackets;
+ } else if (ch == closingBracket) {
+ --brackets;
+ if (brackets == 0) return i;
+ } else if (ch == '"') {
+ break;
+ } else if (ch == '\'') {
+ break;
+ } else if (ch == '/' && i > 0) {
+ if (document.GetCharAt(i - 1) == '/') break;
+ } else if (ch == '*' && i > 0) {
+ if (document.GetCharAt(i - 1) == '/') break;
+ }
+ }
+ return -1;
+ }
+ }
+}
diff --git a/ILSpy/Languages/CSharpHighlightingTokenWriter.cs b/ILSpy/Languages/CSharpHighlightingTokenWriter.cs
index 827e774b3..ddd989831 100644
--- a/ILSpy/Languages/CSharpHighlightingTokenWriter.cs
+++ b/ILSpy/Languages/CSharpHighlightingTokenWriter.cs
@@ -1,4 +1,22 @@
-using System;
+// Copyright (c) 2018 Siegfried Pammer
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this
+// software and associated documentation files (the "Software"), to deal in the Software
+// without restriction, including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+// to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or
+// substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+using System;
using System.Collections.Generic;
using System.Linq;
using ICSharpCode.AvalonEdit.Highlighting;
@@ -254,7 +272,9 @@ namespace ICSharpCode.ILSpy
HighlightingColor color = null;
switch (type) {
case "new":
- color = typeKeywordsColor;
+ case "notnull":
+ // Not sure if reference type or value type
+ color = referenceTypeKeywordsColor;
break;
case "bool":
case "byte":
@@ -271,6 +291,7 @@ namespace ICSharpCode.ILSpy
case "uint":
case "ushort":
case "ulong":
+ case "unmanaged":
color = valueTypeKeywordsColor;
break;
case "class":
diff --git a/ILSpy/Languages/CSharpLanguage.cs b/ILSpy/Languages/CSharpLanguage.cs
index 2441e0eb2..087aaec61 100644
--- a/ILSpy/Languages/CSharpLanguage.cs
+++ b/ILSpy/Languages/CSharpLanguage.cs
@@ -34,8 +34,10 @@ using ICSharpCode.Decompiler.CSharp.Syntax;
using ICSharpCode.Decompiler.CSharp.Transforms;
using ICSharpCode.Decompiler.Metadata;
using ICSharpCode.Decompiler.Output;
+using ICSharpCode.Decompiler.Solution;
using ICSharpCode.Decompiler.TypeSystem;
using ICSharpCode.Decompiler.Util;
+using ICSharpCode.ILSpy.TextView;
using ICSharpCode.ILSpy.TreeNodes;
namespace ICSharpCode.ILSpy
@@ -343,12 +345,12 @@ namespace ICSharpCode.ILSpy
}
}
- public override void DecompileAssembly(LoadedAssembly assembly, ITextOutput output, DecompilationOptions options)
+ public override ProjectId DecompileAssembly(LoadedAssembly assembly, ITextOutput output, DecompilationOptions options)
{
var module = assembly.GetPEFileOrNull();
if (options.FullDecompilation && options.SaveAsProjectDirectory != null) {
var decompiler = new ILSpyWholeProjectDecompiler(assembly, options);
- decompiler.DecompileProject(module, options.SaveAsProjectDirectory, new TextOutputWriter(output), options.CancellationToken);
+ return decompiler.DecompileProject(module, options.SaveAsProjectDirectory, new TextOutputWriter(output), options.CancellationToken);
} else {
AddReferenceAssemblyWarningMessage(module, output);
AddReferenceWarningMessage(module, output);
@@ -389,7 +391,7 @@ namespace ICSharpCode.ILSpy
}
if (metadata.IsAssembly) {
var asm = metadata.GetAssemblyDefinition();
- if (asm.HashAlgorithm != System.Reflection.AssemblyHashAlgorithm.None)
+ if (asm.HashAlgorithm != AssemblyHashAlgorithm.None)
output.WriteLine("// Hash algorithm: " + asm.HashAlgorithm.ToString().ToUpper());
if (!asm.PublicKey.IsNil) {
output.Write("// Public key: ");
@@ -415,6 +417,7 @@ namespace ICSharpCode.ILSpy
}
WriteCode(output, options.DecompilerSettings, st, decompiler.TypeSystem);
}
+ return null;
}
}
@@ -516,7 +519,7 @@ namespace ICSharpCode.ILSpy
return EntityToString(@event, includeDeclaringTypeName, includeNamespace, includeNamespaceOfDeclaringTypeName);
}
- string ToCSharpString(MetadataReader metadata, TypeDefinitionHandle handle, bool fullName)
+ string ToCSharpString(MetadataReader metadata, TypeDefinitionHandle handle, bool fullName, bool omitGenerics)
{
StringBuilder builder = new StringBuilder();
var currentTypeDefHandle = handle;
@@ -528,7 +531,7 @@ namespace ICSharpCode.ILSpy
typeDef = metadata.GetTypeDefinition(currentTypeDefHandle);
var part = ReflectionHelper.SplitTypeParameterCountFromReflectionName(metadata.GetString(typeDef.Name), out int typeParamCount);
var genericParams = typeDef.GetGenericParameters();
- if (genericParams.Count > 0) {
+ if (!omitGenerics && genericParams.Count > 0) {
builder.Insert(0, '>');
int firstIndex = genericParams.Count - typeParamCount;
for (int i = genericParams.Count - 1; i >= genericParams.Count - typeParamCount; i--) {
@@ -549,17 +552,17 @@ namespace ICSharpCode.ILSpy
return builder.ToString();
}
- public override string GetEntityName(PEFile module, EntityHandle handle, bool fullName)
+ public override string GetEntityName(PEFile module, EntityHandle handle, bool fullName, bool omitGenerics)
{
MetadataReader metadata = module.Metadata;
switch (handle.Kind) {
case HandleKind.TypeDefinition:
- return ToCSharpString(metadata, (TypeDefinitionHandle)handle, fullName);
+ return ToCSharpString(metadata, (TypeDefinitionHandle)handle, fullName, omitGenerics);
case HandleKind.FieldDefinition:
var fd = metadata.GetFieldDefinition((FieldDefinitionHandle)handle);
var declaringType = fd.GetDeclaringType();
if (fullName)
- return ToCSharpString(metadata, declaringType, fullName) + "." + metadata.GetString(fd.Name);
+ return ToCSharpString(metadata, declaringType, fullName, omitGenerics) + "." + metadata.GetString(fd.Name);
return metadata.GetString(fd.Name);
case HandleKind.MethodDefinition:
var md = metadata.GetMethodDefinition((MethodDefinitionHandle)handle);
@@ -583,7 +586,7 @@ namespace ICSharpCode.ILSpy
break;
default:
var genericParams = md.GetGenericParameters();
- if (genericParams.Count > 0) {
+ if (!omitGenerics && genericParams.Count > 0) {
methodName += "<";
int i = 0;
foreach (var h in genericParams) {
@@ -597,19 +600,19 @@ namespace ICSharpCode.ILSpy
break;
}
if (fullName)
- return ToCSharpString(metadata, declaringType, fullName) + "." + methodName;
+ return ToCSharpString(metadata, declaringType, fullName, omitGenerics) + "." + methodName;
return methodName;
case HandleKind.EventDefinition:
var ed = metadata.GetEventDefinition((EventDefinitionHandle)handle);
declaringType = metadata.GetMethodDefinition(ed.GetAccessors().GetAny()).GetDeclaringType();
if (fullName)
- return ToCSharpString(metadata, declaringType, fullName) + "." + metadata.GetString(ed.Name);
+ return ToCSharpString(metadata, declaringType, fullName, omitGenerics) + "." + metadata.GetString(ed.Name);
return metadata.GetString(ed.Name);
case HandleKind.PropertyDefinition:
var pd = metadata.GetPropertyDefinition((PropertyDefinitionHandle)handle);
declaringType = metadata.GetMethodDefinition(pd.GetAccessors().GetAny()).GetDeclaringType();
if (fullName)
- return ToCSharpString(metadata, declaringType, fullName) + "." + metadata.GetString(pd.Name);
+ return ToCSharpString(metadata, declaringType, fullName, omitGenerics) + "." + metadata.GetString(pd.Name);
return metadata.GetString(pd.Name);
default:
return null;
@@ -632,5 +635,9 @@ namespace ICSharpCode.ILSpy
{
return CSharpDecompiler.GetCodeMappingInfo(module, member);
}
+
+ CSharpBracketSearcher bracketSearcher = new CSharpBracketSearcher();
+
+ public override IBracketSearcher BracketSearcher => bracketSearcher;
}
}
diff --git a/ILSpy/Languages/ILAstLanguage.cs b/ILSpy/Languages/ILAstLanguage.cs
index fa278e490..3d0fbdc8a 100644
--- a/ILSpy/Languages/ILAstLanguage.cs
+++ b/ILSpy/Languages/ILAstLanguage.cs
@@ -119,7 +119,7 @@ namespace ICSharpCode.ILSpy
var reader = new ILReader(typeSystem.MainModule);
reader.UseDebugSymbols = options.DecompilerSettings.UseDebugSymbols;
var methodBody = module.Reader.GetMethodBody(methodDef.RelativeVirtualAddress);
- ILFunction il = reader.ReadIL((SRM.MethodDefinitionHandle)method.MetadataToken, methodBody, cancellationToken: options.CancellationToken);
+ ILFunction il = reader.ReadIL((SRM.MethodDefinitionHandle)method.MetadataToken, methodBody, kind: ILFunctionKind.TopLevelFunction, cancellationToken: options.CancellationToken);
var namespaces = new HashSet();
var decompiler = new CSharpDecompiler(typeSystem, options.DecompilerSettings) { CancellationToken = options.CancellationToken };
ILTransformContext context = decompiler.CreateILTransformContext(il);
diff --git a/ILSpy/Languages/ILLanguage.cs b/ILSpy/Languages/ILLanguage.cs
index e2ab9d1f3..3dd1ec1ab 100644
--- a/ILSpy/Languages/ILLanguage.cs
+++ b/ILSpy/Languages/ILLanguage.cs
@@ -27,6 +27,8 @@ using System.Reflection.Metadata.Ecma335;
using System.Linq;
using ICSharpCode.Decompiler.Metadata;
using ICSharpCode.Decompiler.TypeSystem;
+using ICSharpCode.Decompiler.Util;
+using ICSharpCode.Decompiler.Solution;
namespace ICSharpCode.ILSpy
{
@@ -150,7 +152,7 @@ namespace ICSharpCode.ILSpy
dis.DisassembleNamespace(nameSpace, module, types.Select(t => (TypeDefinitionHandle)t.MetadataToken));
}
- public override void DecompileAssembly(LoadedAssembly assembly, ITextOutput output, DecompilationOptions options)
+ public override ProjectId DecompileAssembly(LoadedAssembly assembly, ITextOutput output, DecompilationOptions options)
{
output.WriteLine("// " + assembly.FileName);
output.WriteLine();
@@ -174,6 +176,7 @@ namespace ICSharpCode.ILSpy
dis.WriteModuleContents(module);
}
}
+ return null;
}
}
}
diff --git a/ILSpy/Languages/Language.cs b/ILSpy/Languages/Language.cs
index b131c6429..08429ae85 100644
--- a/ILSpy/Languages/Language.cs
+++ b/ILSpy/Languages/Language.cs
@@ -23,6 +23,7 @@ using System.Reflection.PortableExecutable;
using System.Text;
using ICSharpCode.Decompiler;
using ICSharpCode.Decompiler.Metadata;
+using ICSharpCode.Decompiler.Solution;
using ICSharpCode.Decompiler.TypeSystem;
using ICSharpCode.Decompiler.TypeSystem.Implementation;
using ICSharpCode.Decompiler.Util;
@@ -101,6 +102,12 @@ namespace ICSharpCode.ILSpy
}
}
+ public virtual TextView.IBracketSearcher BracketSearcher {
+ get {
+ return TextView.DefaultBracketSearcher.DefaultInstance;
+ }
+ }
+
public virtual void DecompileMethod(IMethod method, ITextOutput output, DecompilationOptions options)
{
WriteCommentLine(output, TypeToString(method.DeclaringTypeDefinition, includeNamespace: true) + "." + method.Name);
@@ -131,11 +138,11 @@ namespace ICSharpCode.ILSpy
WriteCommentLine(output, nameSpace);
}
- public virtual void DecompileAssembly(LoadedAssembly assembly, ITextOutput output, DecompilationOptions options)
+ public virtual ProjectId DecompileAssembly(LoadedAssembly assembly, ITextOutput output, DecompilationOptions options)
{
WriteCommentLine(output, assembly.FileName);
var asm = assembly.GetPEFileOrNull();
- if (asm == null) return;
+ if (asm == null) return null;
var metadata = asm.Metadata;
if (metadata.IsAssembly) {
var name = metadata.GetAssemblyDefinition();
@@ -147,6 +154,7 @@ namespace ICSharpCode.ILSpy
} else {
WriteCommentLine(output, metadata.GetString(metadata.GetModuleDefinition().Name));
}
+ return null;
}
public virtual void WriteCommentLine(ITextOutput output, string comment)
@@ -445,42 +453,42 @@ namespace ICSharpCode.ILSpy
///
/// This should produce a string representation of the entity for search to match search strings against.
///
- public virtual string GetEntityName(PEFile module, EntityHandle handle, bool fullName)
+ public virtual string GetEntityName(PEFile module, EntityHandle handle, bool fullName, bool omitGenerics)
{
MetadataReader metadata = module.Metadata;
switch (handle.Kind) {
case HandleKind.TypeDefinition:
if (fullName)
- return EscapeName(((TypeDefinitionHandle)handle).GetFullTypeName(metadata).ToILNameString());
+ return EscapeName(((TypeDefinitionHandle)handle).GetFullTypeName(metadata).ToILNameString(omitGenerics));
var td = metadata.GetTypeDefinition((TypeDefinitionHandle)handle);
return EscapeName(metadata.GetString(td.Name));
case HandleKind.FieldDefinition:
var fd = metadata.GetFieldDefinition((FieldDefinitionHandle)handle);
- var declaringType = fd.GetDeclaringType();
if (fullName)
- return EscapeName(fd.GetDeclaringType().GetFullTypeName(metadata).ToILNameString() + "." + metadata.GetString(fd.Name));
+ return EscapeName(fd.GetDeclaringType().GetFullTypeName(metadata).ToILNameString(omitGenerics) + "." + metadata.GetString(fd.Name));
return EscapeName(metadata.GetString(fd.Name));
case HandleKind.MethodDefinition:
var md = metadata.GetMethodDefinition((MethodDefinitionHandle)handle);
- declaringType = md.GetDeclaringType();
string methodName = metadata.GetString(md.Name);
- int genericParamCount = md.GetGenericParameters().Count;
- if (genericParamCount > 0)
- methodName += "``" + genericParamCount;
+ if (!omitGenerics) {
+ int genericParamCount = md.GetGenericParameters().Count;
+ if (genericParamCount > 0)
+ methodName += "``" + genericParamCount;
+ }
if (fullName)
- return EscapeName(md.GetDeclaringType().GetFullTypeName(metadata).ToILNameString() + "." + methodName);
+ return EscapeName(md.GetDeclaringType().GetFullTypeName(metadata).ToILNameString(omitGenerics) + "." + methodName);
return EscapeName(methodName);
case HandleKind.EventDefinition:
var ed = metadata.GetEventDefinition((EventDefinitionHandle)handle);
- declaringType = metadata.GetMethodDefinition(ed.GetAccessors().GetAny()).GetDeclaringType();
+ var declaringType = metadata.GetMethodDefinition(ed.GetAccessors().GetAny()).GetDeclaringType();
if (fullName)
- return EscapeName(declaringType.GetFullTypeName(metadata).ToILNameString() + "." + metadata.GetString(ed.Name));
+ return EscapeName(declaringType.GetFullTypeName(metadata).ToILNameString(omitGenerics) + "." + metadata.GetString(ed.Name));
return EscapeName(metadata.GetString(ed.Name));
case HandleKind.PropertyDefinition:
var pd = metadata.GetPropertyDefinition((PropertyDefinitionHandle)handle);
declaringType = metadata.GetMethodDefinition(pd.GetAccessors().GetAny()).GetDeclaringType();
if (fullName)
- return EscapeName(declaringType.GetFullTypeName(metadata).ToILNameString() + "." + metadata.GetString(pd.Name));
+ return EscapeName(declaringType.GetFullTypeName(metadata).ToILNameString(omitGenerics) + "." + metadata.GetString(pd.Name));
return EscapeName(metadata.GetString(pd.Name));
default:
return null;
diff --git a/ILSpy/MainWindow.xaml b/ILSpy/MainWindow.xaml
index a168d2e66..a83b6d799 100644
--- a/ILSpy/MainWindow.xaml
+++ b/ILSpy/MainWindow.xaml
@@ -28,6 +28,7 @@
Executed="RefreshCommandExecuted" />
-
diff --git a/ILSpy/MainWindow.xaml.cs b/ILSpy/MainWindow.xaml.cs
index c532eafd1..5732b5673 100644
--- a/ILSpy/MainWindow.xaml.cs
+++ b/ILSpy/MainWindow.xaml.cs
@@ -38,6 +38,7 @@ using ICSharpCode.Decompiler.Documentation;
using ICSharpCode.Decompiler.Metadata;
using ICSharpCode.Decompiler.TypeSystem;
using ICSharpCode.Decompiler.TypeSystem.Implementation;
+using ICSharpCode.ILSpy.Controls;
using ICSharpCode.ILSpy.TextView;
using ICSharpCode.ILSpy.TreeNodes;
using ICSharpCode.TreeView;
@@ -897,18 +898,18 @@ namespace ICSharpCode.ILSpy
}
decompilationTask = decompilerTextView.DecompileAsync(this.CurrentLanguage, this.SelectedNodes, new DecompilationOptions() { TextViewState = state });
}
-
+
+ void SaveCommandCanExecute(object sender, CanExecuteRoutedEventArgs e)
+ {
+ e.Handled = true;
+ e.CanExecute = SaveCodeContextMenuEntry.CanExecute(SelectedNodes.ToList());
+ }
+
void SaveCommandExecuted(object sender, ExecutedRoutedEventArgs e)
{
- if (this.SelectedNodes.Count() == 1) {
- if (this.SelectedNodes.Single().Save(this.TextView))
- return;
- }
- this.TextView.SaveToDisk(this.CurrentLanguage,
- this.SelectedNodes,
- new DecompilationOptions() { FullDecompilation = true });
+ SaveCodeContextMenuEntry.Execute(SelectedNodes.ToList());
}
-
+
public void RefreshDecompiledView()
{
try {
diff --git a/ILSpy/Options/DecompilerSettingsPanel.xaml.cs b/ILSpy/Options/DecompilerSettingsPanel.xaml.cs
index c1c734173..134f9faf0 100644
--- a/ILSpy/Options/DecompilerSettingsPanel.xaml.cs
+++ b/ILSpy/Options/DecompilerSettingsPanel.xaml.cs
@@ -54,7 +54,9 @@ namespace ICSharpCode.ILSpy.Options
var properties = typeof(Decompiler.DecompilerSettings).GetProperties()
.Where(p => p.GetCustomAttribute()?.Browsable != false);
foreach (var p in properties) {
- p.SetValue(newSettings, (bool?)e.Attribute(p.Name) ?? true);
+ var value = (bool?)e.Attribute(p.Name);
+ if (value.HasValue)
+ p.SetValue(newSettings, value.Value);
}
return newSettings;
}
diff --git a/ILSpy/Options/DisplaySettings.cs b/ILSpy/Options/DisplaySettings.cs
index 3d6053961..a887e2913 100644
--- a/ILSpy/Options/DisplaySettings.cs
+++ b/ILSpy/Options/DisplaySettings.cs
@@ -215,6 +215,18 @@ namespace ICSharpCode.ILSpy.Options
}
}
+ bool highlightMatchingBraces = true;
+
+ public bool HighlightMatchingBraces {
+ get { return highlightMatchingBraces; }
+ set {
+ if (highlightMatchingBraces != value) {
+ highlightMatchingBraces = value;
+ OnPropertyChanged();
+ }
+ }
+ }
+
public void CopyValues(DisplaySettings s)
{
this.SelectedFont = s.selectedFont;
@@ -231,6 +243,7 @@ namespace ICSharpCode.ILSpy.Options
this.IndentationUseTabs = s.indentationUseTabs;
this.IndentationTabSize = s.indentationTabSize;
this.IndentationSize = s.indentationSize;
+ this.HighlightMatchingBraces = s.highlightMatchingBraces;
}
}
}
diff --git a/ILSpy/Options/DisplaySettingsPanel.xaml b/ILSpy/Options/DisplaySettingsPanel.xaml
index ab2ad7398..13d149e6d 100644
--- a/ILSpy/Options/DisplaySettingsPanel.xaml
+++ b/ILSpy/Options/DisplaySettingsPanel.xaml
@@ -80,6 +80,7 @@
+
diff --git a/ILSpy/Options/DisplaySettingsPanel.xaml.cs b/ILSpy/Options/DisplaySettingsPanel.xaml.cs
index b08a139fb..56ff2622d 100644
--- a/ILSpy/Options/DisplaySettingsPanel.xaml.cs
+++ b/ILSpy/Options/DisplaySettingsPanel.xaml.cs
@@ -114,6 +114,7 @@ namespace ICSharpCode.ILSpy.Options
s.IndentationUseTabs = (bool?)e.Attribute("IndentationUseTabs") ?? true;
s.IndentationSize = (int?)e.Attribute("IndentationSize") ?? 4;
s.IndentationTabSize = (int?)e.Attribute("IndentationTabSize") ?? 4;
+ s.HighlightMatchingBraces = (bool?)e.Attribute("HighlightMatchingBraces") ?? true;
return s;
}
@@ -136,6 +137,7 @@ namespace ICSharpCode.ILSpy.Options
section.SetAttributeValue("IndentationUseTabs", s.IndentationUseTabs);
section.SetAttributeValue("IndentationSize", s.IndentationSize);
section.SetAttributeValue("IndentationTabSize", s.IndentationTabSize);
+ section.SetAttributeValue("HighlightMatchingBraces", s.HighlightMatchingBraces);
XElement existingElement = root.Element("DisplaySettings");
if (existingElement != null)
diff --git a/ILSpy/Properties/AssemblyInfo.template.cs b/ILSpy/Properties/AssemblyInfo.template.cs
index 4f475f577..cdbdfecbf 100644
--- a/ILSpy/Properties/AssemblyInfo.template.cs
+++ b/ILSpy/Properties/AssemblyInfo.template.cs
@@ -39,7 +39,7 @@ internal static class RevisionClass
public const string Minor = "0";
public const string Build = "0";
public const string Revision = "$INSERTREVISION$";
- public const string VersionName = "preview2";
+ public const string VersionName = "preview4";
public const string FullVersion = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$";
}
diff --git a/ILSpy/Properties/Resources.Designer.cs b/ILSpy/Properties/Resources.Designer.cs
index 5c86e06e2..b555a63a4 100644
--- a/ILSpy/Properties/Resources.Designer.cs
+++ b/ILSpy/Properties/Resources.Designer.cs
@@ -303,6 +303,25 @@ namespace ICSharpCode.ILSpy.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to The directory is not empty. File will be overwritten.
+ ///Are you sure you want to continue?.
+ ///
+ public static string AssemblySaveCodeDirectoryNotEmpty {
+ get {
+ return ResourceManager.GetString("AssemblySaveCodeDirectoryNotEmpty", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Project Directory not empty.
+ ///
+ public static string AssemblySaveCodeDirectoryNotEmptyTitle {
+ get {
+ return ResourceManager.GetString("AssemblySaveCodeDirectoryNotEmptyTitle", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Automatically check for updates every week.
///
@@ -474,6 +493,15 @@ namespace ICSharpCode.ILSpy.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Use 'ref' extension methods.
+ ///
+ public static string DecompilerSettings_AllowExtensionMethodSyntaxOnRef {
+ get {
+ return ResourceManager.GetString("DecompilerSettings.AllowExtensionMethodSyntaxOnRef", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Always cast targets of explicit interface implementation calls.
///
@@ -700,11 +728,11 @@ namespace ICSharpCode.ILSpy.Properties {
}
///
- /// Looks up a localized string similar to Introduce local functions (NOT IMPLEMENTED!).
+ /// Looks up a localized string similar to Introduce local functions.
///
- public static string DecompilerSettings_IntroduceLocalFunctionsNOTIMPLEMENTED {
+ public static string DecompilerSettings_IntroduceLocalFunctions {
get {
- return ResourceManager.GetString("DecompilerSettings.IntroduceLocalFunctionsNOTIMPLEMENTED", resourceCulture);
+ return ResourceManager.GetString("DecompilerSettings.IntroduceLocalFunctions", resourceCulture);
}
}
@@ -773,6 +801,15 @@ namespace ICSharpCode.ILSpy.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Remove dead stores (use with caution!).
+ ///
+ public static string DecompilerSettings_RemoveDeadStores {
+ get {
+ return ResourceManager.GetString("DecompilerSettings.RemoveDeadStores", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Remove optional arguments, if possible.
///
@@ -908,6 +945,15 @@ namespace ICSharpCode.ILSpy.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Use throw expressions.
+ ///
+ public static string DecompilerSettings_UseThrowExpressions {
+ get {
+ return ResourceManager.GetString("DecompilerSettings.UseThrowExpressions", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Use tuple type syntax.
///
@@ -1115,6 +1161,15 @@ namespace ICSharpCode.ILSpy.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Highlight matching braces.
+ ///
+ public static string HighlightMatchingBraces {
+ get {
+ return ResourceManager.GetString("HighlightMatchingBraces", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to ILSpy version .
///
@@ -1386,7 +1441,7 @@ namespace ICSharpCode.ILSpy.Properties {
}
///
- /// Looks up a localized string similar to ReloadAssemblies.
+ /// Looks up a localized string similar to Reload all assemblies.
///
public static string RefreshCommand_ReloadAssemblies {
get {
@@ -1520,6 +1575,15 @@ namespace ICSharpCode.ILSpy.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Select language to decompile to.
+ ///
+ public static string SelectLanguageDropdownTooltip {
+ get {
+ return ResourceManager.GetString("SelectLanguageDropdownTooltip", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Select a list:.
///
@@ -1529,6 +1593,15 @@ namespace ICSharpCode.ILSpy.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Select version of language to output.
+ ///
+ public static string SelectVersionDropdownTooltip {
+ get {
+ return ResourceManager.GetString("SelectVersionDropdownTooltip", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Shell.
///
diff --git a/ILSpy/Properties/Resources.resx b/ILSpy/Properties/Resources.resx
index 0128389d9..d98c8cdcc 100644
--- a/ILSpy/Properties/Resources.resx
+++ b/ILSpy/Properties/Resources.resx
@@ -172,7 +172,7 @@
Generate portable PDB
- ReloadAssemblies
+ Reload all assemblies
_Reload
@@ -702,8 +702,8 @@
Remove optional arguments, if possible
-
- Introduce local functions (NOT IMPLEMENTED!)
+
+ Introduce local functions
Nullable reference types
@@ -729,4 +729,29 @@
Entity could not be resolved. Cannot analyze entities from missing assembly references. Add the missing reference and try again.
+
+ Use throw expressions
+
+
+ Use 'ref' extension methods
+
+
+ The directory is not empty. File will be overwritten.
+Are you sure you want to continue?
+
+
+ Project Directory not empty
+
+
+ Highlight matching braces
+
+
+ Select language to decompile to
+
+
+ Select version of language to output
+
+
+ Remove dead stores (use with caution!)
+
\ No newline at end of file
diff --git a/ILSpy/Properties/Resources.zh-Hans.resx b/ILSpy/Properties/Resources.zh-Hans.resx
index 4ab21794f..4f04dba0b 100644
--- a/ILSpy/Properties/Resources.zh-Hans.resx
+++ b/ILSpy/Properties/Resources.zh-Hans.resx
@@ -676,7 +676,7 @@
IsByRefLikeAttribute应替换为结构上的 "ref" 修饰符
- IsReadOnlyAttribute 应替为结构参数上的 "readonly"/"中的修饰符
+ IsReadOnlyAttribute 应替为结构参数上的 "readonly"/"in"中的修饰符
类型参数上的IsUnmanagedAttribute 应替换为 "非托管" 约束
@@ -702,8 +702,8 @@
如果可能, 删除可选参数
-
- 引入本地功能 (未实现!)
+
+ 引入本地功能
C# 7.0 本地函数未实现!
diff --git a/ILSpy/Properties/app.config.template b/ILSpy/Properties/app.config.template
index f12271be6..58183137f 100644
--- a/ILSpy/Properties/app.config.template
+++ b/ILSpy/Properties/app.config.template
@@ -14,7 +14,7 @@
-
+
diff --git a/ILSpy/Search/AbstractSearchStrategy.cs b/ILSpy/Search/AbstractSearchStrategy.cs
index ae787621f..1a25f1698 100644
--- a/ILSpy/Search/AbstractSearchStrategy.cs
+++ b/ILSpy/Search/AbstractSearchStrategy.cs
@@ -14,6 +14,7 @@ namespace ICSharpCode.ILSpy.Search
protected readonly string[] searchTerm;
protected readonly Regex regex;
protected readonly bool fullNameSearch;
+ protected readonly bool omitGenerics;
protected readonly Language language;
protected readonly ApiVisibility apiVisibility;
private readonly IProducerConsumerCollection resultQueue;
@@ -29,11 +30,13 @@ namespace ICSharpCode.ILSpy.Search
if (search.StartsWith("/", StringComparison.Ordinal) && search.Length > 4) {
var regexString = search.Substring(1, search.Length - 1);
fullNameSearch = search.Contains("\\.");
+ omitGenerics = !search.Contains("<");
if (regexString.EndsWith("/", StringComparison.Ordinal))
regexString = regexString.Substring(0, regexString.Length - 1);
regex = SafeNewRegex(regexString);
} else {
fullNameSearch = search.Contains(".");
+ omitGenerics = !search.Contains("<");
}
}
searchTerm = terms;
diff --git a/ILSpy/Search/MemberSearchStrategy.cs b/ILSpy/Search/MemberSearchStrategy.cs
index ef68010fb..4a631986b 100644
--- a/ILSpy/Search/MemberSearchStrategy.cs
+++ b/ILSpy/Search/MemberSearchStrategy.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.ILSpy.Search
if (searchKind == MemberSearchKind.All || searchKind == MemberSearchKind.Type) {
foreach (var handle in metadata.TypeDefinitions) {
cancellationToken.ThrowIfCancellationRequested();
- string languageSpecificName = language.GetEntityName(module, handle, fullNameSearch);
+ string languageSpecificName = language.GetEntityName(module, handle, fullNameSearch, omitGenerics);
if (languageSpecificName != null && !IsMatch(languageSpecificName))
continue;
var type = ((MetadataModule)typeSystem.MainModule).GetDefinition(handle);
@@ -43,7 +43,7 @@ namespace ICSharpCode.ILSpy.Search
if (searchKind == MemberSearchKind.All || searchKind == MemberSearchKind.Member || searchKind == MemberSearchKind.Method) {
foreach (var handle in metadata.MethodDefinitions) {
cancellationToken.ThrowIfCancellationRequested();
- string languageSpecificName = language.GetEntityName(module, handle, fullNameSearch);
+ string languageSpecificName = language.GetEntityName(module, handle, fullNameSearch, omitGenerics);
if (languageSpecificName != null && !IsMatch(languageSpecificName))
continue;
var method = ((MetadataModule)typeSystem.MainModule).GetDefinition(handle);
@@ -55,7 +55,7 @@ namespace ICSharpCode.ILSpy.Search
if (searchKind == MemberSearchKind.All || searchKind == MemberSearchKind.Member || searchKind == MemberSearchKind.Field) {
foreach (var handle in metadata.FieldDefinitions) {
cancellationToken.ThrowIfCancellationRequested();
- string languageSpecificName = language.GetEntityName(module, handle, fullNameSearch);
+ string languageSpecificName = language.GetEntityName(module, handle, fullNameSearch, omitGenerics);
if (languageSpecificName != null && !IsMatch(languageSpecificName))
continue;
var field = ((MetadataModule)typeSystem.MainModule).GetDefinition(handle);
@@ -67,7 +67,7 @@ namespace ICSharpCode.ILSpy.Search
if (searchKind == MemberSearchKind.All || searchKind == MemberSearchKind.Member || searchKind == MemberSearchKind.Property) {
foreach (var handle in metadata.PropertyDefinitions) {
cancellationToken.ThrowIfCancellationRequested();
- string languageSpecificName = language.GetEntityName(module, handle, fullNameSearch);
+ string languageSpecificName = language.GetEntityName(module, handle, fullNameSearch, omitGenerics);
if (languageSpecificName != null && !IsMatch(languageSpecificName))
continue;
var property = ((MetadataModule)typeSystem.MainModule).GetDefinition(handle);
@@ -79,7 +79,7 @@ namespace ICSharpCode.ILSpy.Search
if (searchKind == MemberSearchKind.All || searchKind == MemberSearchKind.Member || searchKind == MemberSearchKind.Event) {
foreach (var handle in metadata.EventDefinitions) {
cancellationToken.ThrowIfCancellationRequested();
- string languageSpecificName = language.GetEntityName(module, handle, fullNameSearch);
+ string languageSpecificName = language.GetEntityName(module, handle, fullNameSearch, omitGenerics);
if (!IsMatch(languageSpecificName))
continue;
var @event = ((MetadataModule)typeSystem.MainModule).GetDefinition(handle);
diff --git a/ILSpy/SolutionWriter.cs b/ILSpy/SolutionWriter.cs
new file mode 100644
index 000000000..d892e22ec
--- /dev/null
+++ b/ILSpy/SolutionWriter.cs
@@ -0,0 +1,182 @@
+// Copyright (c) 2011 AlphaSierraPapa for the SharpDevelop Team
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this
+// software and associated documentation files (the "Software"), to deal in the Software
+// without restriction, including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+// to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or
+// substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Collections.Concurrent;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using ICSharpCode.Decompiler;
+using ICSharpCode.Decompiler.Solution;
+using ICSharpCode.Decompiler.Util;
+using ICSharpCode.ILSpy.TextView;
+
+namespace ICSharpCode.ILSpy
+{
+ ///
+ /// An utility class that creates a Visual Studio solution containing projects for the
+ /// decompiled assemblies.
+ ///
+ internal class SolutionWriter
+ {
+ ///
+ /// Creates a Visual Studio solution that contains projects with decompiled code
+ /// of the specified . The solution file will be saved
+ /// to the . The directory of this file must either
+ /// be empty or not exist.
+ ///
+ /// A reference to the instance.
+ /// The target file path of the solution file.
+ /// The assembly nodes to decompile.
+ ///
+ /// Thrown when is null,
+ /// an empty or a whitespace string.
+ /// Thrown when > or
+ /// is null.
+ public static void CreateSolution(DecompilerTextView textView, string solutionFilePath, Language language, IEnumerable assemblies)
+ {
+ if (textView == null) {
+ throw new ArgumentNullException(nameof(textView));
+ }
+
+ if (string.IsNullOrWhiteSpace(solutionFilePath)) {
+ throw new ArgumentException("The solution file path cannot be null or empty.", nameof(solutionFilePath));
+ }
+
+ if (assemblies == null) {
+ throw new ArgumentNullException(nameof(assemblies));
+ }
+
+ var writer = new SolutionWriter(solutionFilePath);
+
+ textView
+ .RunWithCancellation(ct => writer.CreateSolution(assemblies, language, ct))
+ .Then(output => textView.ShowText(output))
+ .HandleExceptions();
+ }
+
+ readonly string solutionFilePath;
+ readonly string solutionDirectory;
+ readonly ConcurrentBag projects;
+ readonly ConcurrentBag statusOutput;
+
+ SolutionWriter(string solutionFilePath)
+ {
+ this.solutionFilePath = solutionFilePath;
+ solutionDirectory = Path.GetDirectoryName(solutionFilePath);
+ statusOutput = new ConcurrentBag();
+ projects = new ConcurrentBag();
+ }
+
+ async Task CreateSolution(IEnumerable assemblies, Language language, CancellationToken ct)
+ {
+ var result = new AvalonEditTextOutput();
+
+ var duplicates = new HashSet();
+ if (assemblies.Any(asm => !duplicates.Add(asm.ShortName))) {
+ result.WriteLine("Duplicate assembly names selected, cannot generate a solution.");
+ return result;
+ }
+
+ Stopwatch stopwatch = Stopwatch.StartNew();
+
+ try {
+ await Task.Run(() => Parallel.ForEach(assemblies, n => WriteProject(n, language, solutionDirectory, ct)))
+ .ConfigureAwait(false);
+
+ await Task.Run(() => SolutionCreator.WriteSolutionFile(solutionFilePath, projects))
+ .ConfigureAwait(false);
+ } catch (AggregateException ae) {
+ if (ae.Flatten().InnerExceptions.All(e => e is OperationCanceledException)) {
+ result.WriteLine();
+ result.WriteLine("Generation was cancelled.");
+ return result;
+ }
+
+ result.WriteLine();
+ result.WriteLine("Failed to generate the Visual Studio Solution. Errors:");
+ ae.Handle(e => {
+ result.WriteLine(e.Message);
+ return true;
+ });
+
+ return result;
+ }
+
+ foreach (var item in statusOutput) {
+ result.WriteLine(item);
+ }
+
+ if (statusOutput.Count == 0) {
+ result.WriteLine("Successfully decompiled the following assemblies into Visual Studio projects:");
+ foreach (var item in assemblies.Select(n => n.Text.ToString())) {
+ result.WriteLine(item);
+ }
+
+ result.WriteLine();
+
+ if (assemblies.Count() == projects.Count) {
+ result.WriteLine("Created the Visual Studio Solution file.");
+ }
+
+ result.WriteLine();
+ result.WriteLine("Elapsed time: " + stopwatch.Elapsed.TotalSeconds.ToString("F1") + " seconds.");
+ result.WriteLine();
+ result.AddButton(null, "Open Explorer", delegate { Process.Start("explorer", "/select,\"" + solutionFilePath + "\""); });
+ }
+
+ return result;
+ }
+
+ void WriteProject(LoadedAssembly loadedAssembly, Language language, string targetDirectory, CancellationToken ct)
+ {
+ targetDirectory = Path.Combine(targetDirectory, loadedAssembly.ShortName);
+ string projectFileName = Path.Combine(targetDirectory, loadedAssembly.ShortName + language.ProjectFileExtension);
+
+ if (!Directory.Exists(targetDirectory)) {
+ try {
+ Directory.CreateDirectory(targetDirectory);
+ } catch (Exception e) {
+ statusOutput.Add($"Failed to create a directory '{targetDirectory}':{Environment.NewLine}{e}");
+ return;
+ }
+ }
+
+ try {
+ using (var projectFileWriter = new StreamWriter(projectFileName)) {
+ var projectFileOutput = new PlainTextOutput(projectFileWriter);
+ var options = new DecompilationOptions() {
+ FullDecompilation = true,
+ CancellationToken = ct,
+ SaveAsProjectDirectory = targetDirectory
+ };
+
+ var projectInfo = language.DecompileAssembly(loadedAssembly, projectFileOutput, options);
+ if (projectInfo != null) {
+ projects.Add(new ProjectItem(projectFileName, projectInfo.PlatformName, projectInfo.Guid));
+ }
+ }
+ } catch (Exception e) when (!(e is OperationCanceledException)) {
+ statusOutput.Add($"Failed to decompile the assembly '{loadedAssembly.FileName}':{Environment.NewLine}{e}");
+ }
+ }
+ }
+}
diff --git a/ILSpy/TextView/BracketHighlightRenderer.cs b/ILSpy/TextView/BracketHighlightRenderer.cs
new file mode 100644
index 000000000..6a814b7c4
--- /dev/null
+++ b/ILSpy/TextView/BracketHighlightRenderer.cs
@@ -0,0 +1,112 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
+// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
+
+using System;
+using System.Windows.Media;
+using ICSharpCode.AvalonEdit.Document;
+using ICSharpCode.AvalonEdit.Rendering;
+
+namespace ICSharpCode.ILSpy.TextView
+{
+ ///
+ /// Allows language specific search for matching brackets.
+ ///
+ public interface IBracketSearcher
+ {
+ ///
+ /// Searches for a matching bracket from the given offset to the start of the document.
+ ///
+ /// A BracketSearchResult that contains the positions and lengths of the brackets. Return null if there is nothing to highlight.
+ BracketSearchResult SearchBracket(IDocument document, int offset);
+ }
+
+ public class DefaultBracketSearcher : IBracketSearcher
+ {
+ public static readonly DefaultBracketSearcher DefaultInstance = new DefaultBracketSearcher();
+
+ public BracketSearchResult SearchBracket(IDocument document, int offset)
+ {
+ return null;
+ }
+ }
+
+ ///
+ /// Describes a pair of matching brackets found by .
+ ///
+ public class BracketSearchResult
+ {
+ public int OpeningBracketOffset { get; private set; }
+
+ public int OpeningBracketLength { get; private set; }
+
+ public int ClosingBracketOffset { get; private set; }
+
+ public int ClosingBracketLength { get; private set; }
+
+ public BracketSearchResult(int openingBracketOffset, int openingBracketLength,
+ int closingBracketOffset, int closingBracketLength)
+ {
+ this.OpeningBracketOffset = openingBracketOffset;
+ this.OpeningBracketLength = openingBracketLength;
+ this.ClosingBracketOffset = closingBracketOffset;
+ this.ClosingBracketLength = closingBracketLength;
+ }
+ }
+
+ public class BracketHighlightRenderer : IBackgroundRenderer
+ {
+ BracketSearchResult result;
+ Pen borderPen;
+ Brush backgroundBrush;
+ ICSharpCode.AvalonEdit.Rendering.TextView textView;
+
+ public void SetHighlight(BracketSearchResult result)
+ {
+ if (this.result != result) {
+ this.result = result;
+ textView.InvalidateLayer(this.Layer);
+ }
+ }
+
+ public BracketHighlightRenderer(ICSharpCode.AvalonEdit.Rendering.TextView textView)
+ {
+ if (textView == null)
+ throw new ArgumentNullException("textView");
+
+ this.borderPen = new Pen(new SolidColorBrush(Color.FromArgb(52, 0, 0, 255)), 1);
+ this.borderPen.Freeze();
+
+ this.backgroundBrush = new SolidColorBrush(Color.FromArgb(22, 0, 0, 255));
+ this.backgroundBrush.Freeze();
+
+ this.textView = textView;
+
+ this.textView.BackgroundRenderers.Add(this);
+ }
+
+ public KnownLayer Layer {
+ get {
+ return KnownLayer.Selection;
+ }
+ }
+
+ public void Draw(ICSharpCode.AvalonEdit.Rendering.TextView textView, DrawingContext drawingContext)
+ {
+ if (this.result == null)
+ return;
+
+ BackgroundGeometryBuilder builder = new BackgroundGeometryBuilder();
+
+ builder.CornerRadius = 1;
+
+ builder.AddSegment(textView, new TextSegment() { StartOffset = result.OpeningBracketOffset, Length = result.OpeningBracketLength });
+ builder.CloseFigure(); // prevent connecting the two segments
+ builder.AddSegment(textView, new TextSegment() { StartOffset = result.ClosingBracketOffset, Length = result.ClosingBracketLength });
+
+ Geometry geometry = builder.CreateGeometry();
+ if (geometry != null) {
+ drawingContext.DrawGeometry(backgroundBrush, borderPen, geometry);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ILSpy/TextView/DecompilerTextView.cs b/ILSpy/TextView/DecompilerTextView.cs
index 4bc85ca58..5d714cb5f 100644
--- a/ILSpy/TextView/DecompilerTextView.cs
+++ b/ILSpy/TextView/DecompilerTextView.cs
@@ -68,6 +68,7 @@ namespace ICSharpCode.ILSpy.TextView
readonly UIElementGenerator uiElementGenerator;
readonly List activeCustomElementGenerators = new List();
RichTextColorizer activeRichTextColorizer;
+ BracketHighlightRenderer bracketHighlightRenderer;
FoldingManager foldingManager;
ILSpyTreeNode[] decompiledNodes;
@@ -106,12 +107,14 @@ namespace ICSharpCode.ILSpy.TextView
this.referenceElementGenerator = new ReferenceElementGenerator(this.JumpToReference, this.IsLink);
textEditor.TextArea.TextView.ElementGenerators.Add(referenceElementGenerator);
this.uiElementGenerator = new UIElementGenerator();
+ this.bracketHighlightRenderer = new BracketHighlightRenderer(textEditor.TextArea.TextView);
textEditor.TextArea.TextView.ElementGenerators.Add(uiElementGenerator);
textEditor.Options.RequireControlModifierForHyperlinkClick = false;
textEditor.TextArea.TextView.MouseHover += TextViewMouseHover;
textEditor.TextArea.TextView.MouseHoverStopped += TextViewMouseHoverStopped;
textEditor.TextArea.PreviewMouseDown += TextAreaMouseDown;
textEditor.TextArea.PreviewMouseUp += TextAreaMouseUp;
+ textEditor.TextArea.Caret.PositionChanged += HighlightBrackets;
textEditor.MouseMove += TextEditorMouseMove;
textEditor.MouseLeave += TextEditorMouseLeave;
textEditor.SetBinding(Control.FontFamilyProperty, new Binding { Source = DisplaySettingsPanel.CurrentDisplaySettings, Path = new PropertyPath("SelectedFont") });
@@ -423,6 +426,18 @@ namespace ICSharpCode.ILSpy.TextView
}
#endregion
+ #region Highlight brackets
+ void HighlightBrackets(object sender, EventArgs e)
+ {
+ if (DisplaySettingsPanel.CurrentDisplaySettings.HighlightMatchingBraces) {
+ var result = MainWindow.Instance.CurrentLanguage.BracketSearcher.SearchBracket(textEditor.Document, textEditor.CaretOffset);
+ bracketHighlightRenderer.SetHighlight(result);
+ } else {
+ bracketHighlightRenderer.SetHighlight(null);
+ }
+ }
+ #endregion
+
#region RunWithCancellation
///
/// Switches the GUI into "waiting" mode, then calls to create
diff --git a/ILSpy/TreeNodes/AssemblyTreeNode.cs b/ILSpy/TreeNodes/AssemblyTreeNode.cs
index 51aa65bdf..13e2c1df2 100644
--- a/ILSpy/TreeNodes/AssemblyTreeNode.cs
+++ b/ILSpy/TreeNodes/AssemblyTreeNode.cs
@@ -292,9 +292,8 @@ namespace ICSharpCode.ILSpy.TreeNodes
foreach (string entry in Directory.GetFileSystemEntries(options.SaveAsProjectDirectory)) {
if (!string.Equals(entry, dlg.FileName, StringComparison.OrdinalIgnoreCase)) {
var result = MessageBox.Show(
- "The directory is not empty. File will be overwritten." + Environment.NewLine +
- "Are you sure you want to continue?",
- "Project Directory not empty",
+ Resources.AssemblySaveCodeDirectoryNotEmpty,
+ Resources.AssemblySaveCodeDirectoryNotEmptyTitle,
MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
if (result == MessageBoxResult.No)
return true; // don't save, but mark the Save operation as handled
diff --git a/ILSpy/TreeNodes/DerivedTypesEntryNode.cs b/ILSpy/TreeNodes/DerivedTypesEntryNode.cs
index 91da3e033..e75214afe 100644
--- a/ILSpy/TreeNodes/DerivedTypesEntryNode.cs
+++ b/ILSpy/TreeNodes/DerivedTypesEntryNode.cs
@@ -42,7 +42,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
public override object Text
{
- get { return type.FullName + type.MetadataToken.ToSuffixString(); }
+ get { return Language.TypeToString(type, includeNamespace: true) + type.MetadataToken.ToSuffixString(); }
}
public override object Icon => TypeTreeNode.GetIcon(type);
diff --git a/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs b/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs
index 331f8da08..fde4630f1 100644
--- a/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs
+++ b/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs
@@ -86,7 +86,6 @@ namespace ICSharpCode.ILSpy.TreeNodes
output.Unindent();
output.WriteLine();
}
-
}
}
}
diff --git a/README.md b/README.md
index 8901e4bea..7815ad7c0 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# ILSpy [](https://gitter.im/icsharpcode/ILSpy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [](https://nuget.org/packages/ICSharpCode.Decompiler) [](https://ci.appveyor.com/project/icsharpcode/ilspy/branch/master) [](https://twitter.com/ilspy) [](http://www.ilspy.net) [](https://visualstudiogallery.msdn.microsoft.com/8ef1d688-f80c-4380-8004-2ec7f814e7de)
+# ILSpy [](https://gitter.im/icsharpcode/ILSpy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [](https://nuget.org/packages/ICSharpCode.Decompiler) [](https://ci.appveyor.com/project/icsharpcode/ilspy/branch/master) [](https://twitter.com/ilspy) [](https://visualstudiogallery.msdn.microsoft.com/8ef1d688-f80c-4380-8004-2ec7f814e7de) [](https://icsharpcode.visualstudio.com/icsharpcode-pipelines/_build/latest?definitionId=1&branchName=master)
ILSpy is the open-source .NET assembly browser and decompiler.
@@ -48,12 +48,13 @@ How to build
------------
Windows:
-- Install Visual Studio (minimum version: 2017.7) with the following components:
+- Install Visual Studio (minimum version: 2019.2) with the following components:
- Workload ".NET Desktop Development"
- .NET Framework 4.6.2 Targeting Pack (if the VS installer does not offer this option, install the [.NET 4.6.2 developer pack](https://www.microsoft.com/en-us/download/details.aspx?id=53321) separately)
- - Individual Component "VC++ 2017 version 15.9 v14.16 latest v141 tools" (or similar)
+ - Individual Component "MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.22)" (or similar)
- The VC++ toolset is optional; if present it is used for `editbin.exe` to modify the stack size used by ILSpy.exe from 1MB to 16MB, because the decompiler makes heavy use of recursion, where small stack sizes lead to problems in very complex methods.
- Install the [.NET Core SDK 2.2](https://dotnet.microsoft.com/download)
+- Install the [.NET Core SDK 3](https://dotnet.microsoft.com/download/dotnet-core)
- Check out the ILSpy repository using git.
- Execute `git submodule update --init --recursive` to download the ILSpy-Tests submodule (used by some test cases).
- Open ILSpy.sln in Visual Studio.
@@ -63,6 +64,7 @@ Windows:
Unix:
- Make sure .NET Core 2.2 is installed (you can get it here: https://get.dot.net).
+- Make sure [.NET Core SDK 3](https://dotnet.microsoft.com/download/dotnet-core) is installed.
- Check out the repository using git.
- Execute `git submodule update --init --recursive` to download the ILSpy-Tests submodule (used by some test cases).
- Use `dotnet build Frontends.sln` to build the non-Windows flavors of ILSpy (cli and powershell core).
diff --git a/appveyor.yml b/appveyor.yml
index 08de22677..13806b0ce 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,28 +1,39 @@
platform: Any CPU
+
configuration:
- Debug
- Release
-image: Visual Studio 2019 Preview
+
+image: Visual Studio 2019
+
install:
+- cmd: choco install dotnetcore-sdk --pre
- git submodule update --init --recursive
- ps: .\BuildTools\appveyor-install.ps1
+
nuget:
account_feed: false
project_feed: true
disable_publish_on_pr: true
+
before_build:
- nuget restore ILSpy.sln
+
build_script:
- msbuild ILSpy.sln /v:minimal /p:ResolveNuGetPackages=false "/logger:%ProgramFiles%\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
+
after_build:
- 7z a ILSpy_binaries.zip %APPVEYOR_BUILD_FOLDER%\ILSpy\bin\%configuration%\net462\*.dll %APPVEYOR_BUILD_FOLDER%\ILSpy\bin\%configuration%\net462\*.exe %APPVEYOR_BUILD_FOLDER%\ILSpy\bin\%configuration%\net462\*.config %APPVEYOR_BUILD_FOLDER%\ILSpy\bin\%configuration%\net462\*\ILSpy.resources.dll
+
test:
assemblies:
- 'ICSharpCode.Decompiler.Tests\bin\%configuration%\net462\ICSharpCode.Decompiler.Tests.exe'
- 'ILSpy.Tests\bin\%configuration%\net462\ILSpy.Tests.exe'
- 'ILSpy.BamlDecompiler.Tests\bin\%configuration%\net462\ILSpy.BamlDecompiler.Tests.dll'
+
after_test:
- python BuildTools\tidy.py
+
for:
- branches:
except:
diff --git a/clean.bat b/clean.bat
index 690435b2d..b19f16be7 100644
--- a/clean.bat
+++ b/clean.bat
@@ -1,12 +1,12 @@
@setlocal enabledelayedexpansion
@set MSBUILD=
-@for /D %%M in ("%ProgramFiles(x86)%\Microsoft Visual Studio\2017"\*) do (
- @if exist "%%M\MSBuild\15.0\Bin\MSBuild.exe" (
- @set "MSBUILD=%%M\MSBuild\15.0\Bin\MSBuild.exe"
+@for /D %%M in ("%ProgramFiles(x86)%\Microsoft Visual Studio\2019"\*) do (
+ @if exist "%%M\MSBuild\Current\Bin\MSBuild.exe" (
+ @set "MSBUILD=%%M\MSBuild\Current\Bin\MSBuild.exe"
)
)
@if "%MSBUILD%" == "" (
- @echo Could not find VS2017 MSBuild
+ @echo Could not find VS2019 MSBuild
@exit /b 1
)
"%MSBUILD%" /m ILSpy.sln /t:Clean /p:Configuration=Debug "/p:Platform=Any CPU" || pause
diff --git a/debugbuild.bat b/debugbuild.bat
index 08d5425e6..90325ccab 100644
--- a/debugbuild.bat
+++ b/debugbuild.bat
@@ -1,12 +1,12 @@
@setlocal enabledelayedexpansion
@set MSBUILD=
-@for /D %%M in ("%ProgramFiles(x86)%\Microsoft Visual Studio\2017"\*) do (
- @if exist "%%M\MSBuild\15.0\Bin\MSBuild.exe" (
- @set "MSBUILD=%%M\MSBuild\15.0\Bin\MSBuild.exe"
+@for /D %%M in ("%ProgramFiles(x86)%\Microsoft Visual Studio\2019"\*) do (
+ @if exist "%%M\MSBuild\Current\Bin\MSBuild.exe" (
+ @set "MSBUILD=%%M\MSBuild\Current\Bin\MSBuild.exe"
)
)
@if "%MSBUILD%" == "" (
- @echo Could not find VS2017 MSBuild
+ @echo Could not find VS2019 MSBuild
@exit /b 1
)
"%MSBUILD%" ILSpy.sln /p:Configuration=Debug "/p:Platform=Any CPU"
diff --git a/preparerelease.bat b/preparerelease.bat
index 60fadaabe..d2b141357 100644
--- a/preparerelease.bat
+++ b/preparerelease.bat
@@ -1,12 +1,12 @@
@setlocal enabledelayedexpansion
@set MSBUILD=
-@for /D %%M in ("%ProgramFiles(x86)%\Microsoft Visual Studio\2017"\*) do (
- @if exist "%%M\MSBuild\15.0\Bin\MSBuild.exe" (
- @set "MSBUILD=%%M\MSBuild\15.0\Bin\MSBuild.exe"
+@for /D %%M in ("%ProgramFiles(x86)%\Microsoft Visual Studio\2019"\*) do (
+ @if exist "%%M\MSBuild\Current\Bin\MSBuild.exe" (
+ @set "MSBUILD=%%M\MSBuild\Current\Bin\MSBuild.exe"
)
)
@if "%MSBUILD%" == "" (
- @echo Could not find VS2017 MSBuild
+ @echo Could not find VS2019 MSBuild
@exit /b 1
)
@del ICSharpCode.Decompiler\bin\Release\*.nupkg
diff --git a/releasebuild.bat b/releasebuild.bat
index a753390fa..cd881dd67 100644
--- a/releasebuild.bat
+++ b/releasebuild.bat
@@ -1,12 +1,12 @@
@setlocal enabledelayedexpansion
@set MSBUILD=
-@for /D %%M in ("%ProgramFiles(x86)%\Microsoft Visual Studio\2017"\*) do (
- @if exist "%%M\MSBuild\15.0\Bin\MSBuild.exe" (
- @set "MSBUILD=%%M\MSBuild\15.0\Bin\MSBuild.exe"
+@for /D %%M in ("%ProgramFiles(x86)%\Microsoft Visual Studio\2019"\*) do (
+ @if exist "%%M\MSBuild\Current\Bin\MSBuild.exe" (
+ @set "MSBUILD=%%M\MSBuild\Current\Bin\MSBuild.exe"
)
)
@if "%MSBUILD%" == "" (
- @echo Could not find VS2017 MSBuild
+ @echo Could not find VS2019 MSBuild
@exit /b 1
)
"%MSBUILD%" ILSpy.sln /p:Configuration=Release "/p:Platform=Any CPU"