diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 3962299d..00000000
--- a/.gitmodules
+++ /dev/null
@@ -1,4 +0,0 @@
-[submodule "external/FluentIL"]
- path = external/FluentIL
- url = git@github.com:pamidur/fluent-il.git
- branch = master
diff --git a/AspectInjector.sln b/AspectInjector.sln
index 33e3ebf4..a9448183 100644
--- a/AspectInjector.sln
+++ b/AspectInjector.sln
@@ -1,307 +1,307 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.32112.339
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_solution", "_solution", "{AEB111CE-8C1F-49F8-8282-6BBA13C05C2E}"
- ProjectSection(SolutionItems) = preProject
- .github\workflows\application.yml = .github\workflows\application.yml
- LICENSE = LICENSE
- package.png = package.png
- README.md = README.md
- .github\workflows\samples.yml = .github\workflows\samples.yml
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Core", "src\AspectInjector.Core\AspectInjector.Core.csproj", "{ACCC10D0-D079-4B9C-8269-71796A0EF822}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2DAB661A-26B2-440A-BC54-59F2C8404F12}"
- ProjectSection(SolutionItems) = preProject
- tests\Directory.Build.props = tests\Directory.Build.props
- tests\Directory.Build.targets = tests\Directory.Build.targets
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Core.Mixin", "src\AspectInjector.Core.Mixin\AspectInjector.Core.Mixin.csproj", "{3FBD73F5-6098-45A8-A236-6CC2F093B804}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Core.Advice", "src\AspectInjector.Core.Advice\AspectInjector.Core.Advice.csproj", "{1A96AA51-2CBC-4901-91D1-53208AD5E6B6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Broker", "src\AspectInjector.Broker\AspectInjector.Broker.csproj", "{0926FE28-73BA-4F73-9188-B196FBBC9410}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Package", "nuget\AspectInjector.Package.csproj", "{29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}"
- ProjectSection(SolutionItems) = preProject
- src\Directory.Build.props = src\Directory.Build.props
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Tests.RuntimeAssets", "tests\AspectInjector.Tests.RuntimeAssets\AspectInjector.Tests.RuntimeAssets.csproj", "{A4BDB41D-096A-42E7-953E-99F7680141B0}"
- ProjectSection(ProjectDependencies) = postProject
- {FC862191-9081-4A58-96FF-B57F17AC40A9} = {FC862191-9081-4A58-96FF-B57F17AC40A9}
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector", "src\AspectInjector\AspectInjector.csproj", "{FC862191-9081-4A58-96FF-B57F17AC40A9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Tests.Runtime", "tests\AspectInjector.Tests.Runtime\AspectInjector.Tests.Runtime.csproj", "{6431E891-8E90-4510-AC8F-581536757EA0}"
- ProjectSection(ProjectDependencies) = postProject
- {FC862191-9081-4A58-96FF-B57F17AC40A9} = {FC862191-9081-4A58-96FF-B57F17AC40A9}
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Analyzer", "src\AspectInjector.Analyzer\AspectInjector.Analyzer.csproj", "{8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Analyzer.Tests", "tests\AspectInjector.Analyzer.Tests\AspectInjector.Analyzer.Tests.csproj", "{ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspectInjector.Analyzer.Vsix", "src\AspectInjector.Analyzer.Vsix\AspectInjector.Analyzer.Vsix.csproj", "{06F6709E-56E5-41ED-9BC1-55A8F648DD72}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Rules", "src\AspectInjector.Rules\AspectInjector.Rules.csproj", "{20ED44A4-9D35-41F2-A317-C1EB9923379E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FluentIL", "external\FluentIL\src\FluentIL\FluentIL.csproj", "{E8F7FB9B-4FF0-4195-B064-D41A96E41918}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FluentIL.Common", "external\FluentIL\src\FluentIL.Common\FluentIL.Common.csproj", "{7BD22418-F4A9-422B-9FDE-A20708BA0648}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Tests.Integrity", "tests\AspectInjector.Tests.Integrity\AspectInjector.Tests.Integrity.csproj", "{230C6FAF-11A1-4318-A482-69C7252652B1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Tests.Generics", "tests\AspectInjector.Tests.Generics\AspectInjector.Tests.Generics.csproj", "{BF019B75-CECE-46E7-9E3D-620B2CAB6A96}"
- ProjectSection(ProjectDependencies) = postProject
- {FC862191-9081-4A58-96FF-B57F17AC40A9} = {FC862191-9081-4A58-96FF-B57F17AC40A9}
- EndProjectSection
-EndProject
-Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "AspectInjector.Tests.VBRuntime", "tests\AspectInjector.Tests.VBRuntime\AspectInjector.Tests.VBRuntime.vbproj", "{1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|x86 = Debug|x86
- DebugTests|Any CPU = DebugTests|Any CPU
- DebugTests|x86 = DebugTests|x86
- Release|Any CPU = Release|Any CPU
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Debug|x86.ActiveCfg = Debug|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Debug|x86.Build.0 = Debug|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.DebugTests|x86.Build.0 = Debug|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Release|Any CPU.Build.0 = Release|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Release|x86.ActiveCfg = Release|Any CPU
- {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Release|x86.Build.0 = Release|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Debug|x86.Build.0 = Debug|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.DebugTests|x86.Build.0 = Debug|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Release|Any CPU.Build.0 = Release|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Release|x86.ActiveCfg = Release|Any CPU
- {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Release|x86.Build.0 = Release|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Debug|x86.Build.0 = Debug|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.DebugTests|x86.Build.0 = Debug|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Release|Any CPU.Build.0 = Release|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Release|x86.ActiveCfg = Release|Any CPU
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Release|x86.Build.0 = Release|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.Debug|x86.ActiveCfg = Debug|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.Debug|x86.Build.0 = Debug|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.DebugTests|x86.Build.0 = Debug|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.Release|Any CPU.Build.0 = Release|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.Release|x86.ActiveCfg = Release|Any CPU
- {0926FE28-73BA-4F73-9188-B196FBBC9410}.Release|x86.Build.0 = Release|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Debug|x86.ActiveCfg = Debug|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Debug|x86.Build.0 = Debug|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.DebugTests|x86.Build.0 = Debug|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Release|Any CPU.Build.0 = Release|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Release|x86.ActiveCfg = Release|Any CPU
- {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Release|x86.Build.0 = Release|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.Debug|x86.Build.0 = Debug|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.DebugTests|Any CPU.ActiveCfg = DebugTests|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.DebugTests|Any CPU.Build.0 = DebugTests|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.DebugTests|x86.ActiveCfg = DebugTests|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.DebugTests|x86.Build.0 = DebugTests|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.Release|Any CPU.Build.0 = Release|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.Release|x86.ActiveCfg = Release|Any CPU
- {A4BDB41D-096A-42E7-953E-99F7680141B0}.Release|x86.Build.0 = Release|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.Debug|x86.Build.0 = Debug|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.DebugTests|x86.Build.0 = Debug|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.Release|Any CPU.Build.0 = Release|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.Release|x86.ActiveCfg = Release|Any CPU
- {FC862191-9081-4A58-96FF-B57F17AC40A9}.Release|x86.Build.0 = Release|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.Debug|x86.Build.0 = Debug|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.DebugTests|Any CPU.ActiveCfg = DebugTests|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.DebugTests|Any CPU.Build.0 = DebugTests|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.DebugTests|x86.ActiveCfg = DebugTests|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.DebugTests|x86.Build.0 = DebugTests|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.Release|Any CPU.Build.0 = Release|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.Release|x86.ActiveCfg = Release|Any CPU
- {6431E891-8E90-4510-AC8F-581536757EA0}.Release|x86.Build.0 = Release|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Debug|x86.Build.0 = Debug|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.DebugTests|x86.Build.0 = Debug|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Release|Any CPU.Build.0 = Release|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Release|x86.ActiveCfg = Release|Any CPU
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Release|x86.Build.0 = Release|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Debug|x86.Build.0 = Debug|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.DebugTests|x86.Build.0 = Debug|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Release|Any CPU.Build.0 = Release|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Release|x86.ActiveCfg = Release|Any CPU
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Release|x86.Build.0 = Release|Any CPU
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Debug|x86.ActiveCfg = Debug|x86
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Debug|x86.Build.0 = Debug|x86
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.DebugTests|x86.ActiveCfg = Debug|x86
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.DebugTests|x86.Build.0 = Debug|x86
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Release|x86.ActiveCfg = Release|x86
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Release|x86.Build.0 = Release|x86
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Debug|x86.Build.0 = Debug|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.DebugTests|x86.Build.0 = Debug|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Release|Any CPU.Build.0 = Release|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Release|x86.ActiveCfg = Release|Any CPU
- {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Release|x86.Build.0 = Release|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Debug|x86.Build.0 = Debug|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.DebugTests|x86.Build.0 = Debug|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Release|Any CPU.Build.0 = Release|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Release|x86.ActiveCfg = Release|Any CPU
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Release|x86.Build.0 = Release|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Debug|x86.ActiveCfg = Debug|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Debug|x86.Build.0 = Debug|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.DebugTests|x86.Build.0 = Debug|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Release|Any CPU.Build.0 = Release|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Release|x86.ActiveCfg = Release|Any CPU
- {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Release|x86.Build.0 = Release|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.Debug|x86.ActiveCfg = Debug|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.Debug|x86.Build.0 = Debug|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.DebugTests|x86.Build.0 = Debug|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.Release|Any CPU.Build.0 = Release|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.Release|x86.ActiveCfg = Release|Any CPU
- {230C6FAF-11A1-4318-A482-69C7252652B1}.Release|x86.Build.0 = Release|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Debug|x86.Build.0 = Debug|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.DebugTests|Any CPU.ActiveCfg = DebugTests|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.DebugTests|Any CPU.Build.0 = DebugTests|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.DebugTests|x86.ActiveCfg = DebugTests|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.DebugTests|x86.Build.0 = DebugTests|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Release|Any CPU.Build.0 = Release|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Release|x86.ActiveCfg = Release|Any CPU
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Release|x86.Build.0 = Release|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Debug|x86.Build.0 = Debug|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.DebugTests|Any CPU.ActiveCfg = DebugTests|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.DebugTests|Any CPU.Build.0 = DebugTests|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.DebugTests|x86.ActiveCfg = Debug|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.DebugTests|x86.Build.0 = Debug|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Release|Any CPU.Build.0 = Release|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Release|x86.ActiveCfg = Release|Any CPU
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Release|x86.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {ACCC10D0-D079-4B9C-8269-71796A0EF822} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
- {3FBD73F5-6098-45A8-A236-6CC2F093B804} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
- {1A96AA51-2CBC-4901-91D1-53208AD5E6B6} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
- {0926FE28-73BA-4F73-9188-B196FBBC9410} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
- {A4BDB41D-096A-42E7-953E-99F7680141B0} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
- {FC862191-9081-4A58-96FF-B57F17AC40A9} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
- {6431E891-8E90-4510-AC8F-581536757EA0} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
- {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
- {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
- {06F6709E-56E5-41ED-9BC1-55A8F648DD72} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
- {20ED44A4-9D35-41F2-A317-C1EB9923379E} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
- {E8F7FB9B-4FF0-4195-B064-D41A96E41918} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
- {7BD22418-F4A9-422B-9FDE-A20708BA0648} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
- {230C6FAF-11A1-4318-A482-69C7252652B1} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
- {BF019B75-CECE-46E7-9E3D-620B2CAB6A96} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
- {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {B153C707-A96B-404C-B0E6-2225AE14B304}
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.32112.339
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_solution", "_solution", "{AEB111CE-8C1F-49F8-8282-6BBA13C05C2E}"
+ ProjectSection(SolutionItems) = preProject
+ .github\workflows\application.yml = .github\workflows\application.yml
+ LICENSE = LICENSE
+ package.png = package.png
+ README.md = README.md
+ .github\workflows\samples.yml = .github\workflows\samples.yml
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Core", "src\AspectInjector.Core\AspectInjector.Core.csproj", "{ACCC10D0-D079-4B9C-8269-71796A0EF822}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2DAB661A-26B2-440A-BC54-59F2C8404F12}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Directory.Build.props = tests\Directory.Build.props
+ tests\Directory.Build.targets = tests\Directory.Build.targets
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Core.Mixin", "src\AspectInjector.Core.Mixin\AspectInjector.Core.Mixin.csproj", "{3FBD73F5-6098-45A8-A236-6CC2F093B804}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Core.Advice", "src\AspectInjector.Core.Advice\AspectInjector.Core.Advice.csproj", "{1A96AA51-2CBC-4901-91D1-53208AD5E6B6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Broker", "src\AspectInjector.Broker\AspectInjector.Broker.csproj", "{0926FE28-73BA-4F73-9188-B196FBBC9410}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Package", "nuget\AspectInjector.Package.csproj", "{29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}"
+ ProjectSection(SolutionItems) = preProject
+ src\Directory.Build.props = src\Directory.Build.props
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Tests.RuntimeAssets", "tests\AspectInjector.Tests.RuntimeAssets\AspectInjector.Tests.RuntimeAssets.csproj", "{A4BDB41D-096A-42E7-953E-99F7680141B0}"
+ ProjectSection(ProjectDependencies) = postProject
+ {FC862191-9081-4A58-96FF-B57F17AC40A9} = {FC862191-9081-4A58-96FF-B57F17AC40A9}
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector", "src\AspectInjector\AspectInjector.csproj", "{FC862191-9081-4A58-96FF-B57F17AC40A9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Tests.Runtime", "tests\AspectInjector.Tests.Runtime\AspectInjector.Tests.Runtime.csproj", "{6431E891-8E90-4510-AC8F-581536757EA0}"
+ ProjectSection(ProjectDependencies) = postProject
+ {FC862191-9081-4A58-96FF-B57F17AC40A9} = {FC862191-9081-4A58-96FF-B57F17AC40A9}
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Analyzer", "src\AspectInjector.Analyzer\AspectInjector.Analyzer.csproj", "{8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Analyzer.Tests", "tests\AspectInjector.Analyzer.Tests\AspectInjector.Analyzer.Tests.csproj", "{ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspectInjector.Analyzer.Vsix", "src\AspectInjector.Analyzer.Vsix\AspectInjector.Analyzer.Vsix.csproj", "{06F6709E-56E5-41ED-9BC1-55A8F648DD72}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Rules", "src\AspectInjector.Rules\AspectInjector.Rules.csproj", "{20ED44A4-9D35-41F2-A317-C1EB9923379E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FluentIL", "src\FluentIL\FluentIL.csproj", "{E8F7FB9B-4FF0-4195-B064-D41A96E41918}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FluentIL.Common", "src\FluentIL.Common\FluentIL.Common.csproj", "{7BD22418-F4A9-422B-9FDE-A20708BA0648}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Tests.Integrity", "tests\AspectInjector.Tests.Integrity\AspectInjector.Tests.Integrity.csproj", "{230C6FAF-11A1-4318-A482-69C7252652B1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspectInjector.Tests.Generics", "tests\AspectInjector.Tests.Generics\AspectInjector.Tests.Generics.csproj", "{BF019B75-CECE-46E7-9E3D-620B2CAB6A96}"
+ ProjectSection(ProjectDependencies) = postProject
+ {FC862191-9081-4A58-96FF-B57F17AC40A9} = {FC862191-9081-4A58-96FF-B57F17AC40A9}
+ EndProjectSection
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "AspectInjector.Tests.VBRuntime", "tests\AspectInjector.Tests.VBRuntime\AspectInjector.Tests.VBRuntime.vbproj", "{1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x86 = Debug|x86
+ DebugTests|Any CPU = DebugTests|Any CPU
+ DebugTests|x86 = DebugTests|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Debug|x86.Build.0 = Debug|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Release|x86.ActiveCfg = Release|Any CPU
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822}.Release|x86.Build.0 = Release|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Debug|x86.Build.0 = Debug|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Release|x86.ActiveCfg = Release|Any CPU
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804}.Release|x86.Build.0 = Release|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Debug|x86.Build.0 = Debug|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Release|x86.ActiveCfg = Release|Any CPU
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6}.Release|x86.Build.0 = Release|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.Debug|x86.Build.0 = Debug|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.Release|x86.ActiveCfg = Release|Any CPU
+ {0926FE28-73BA-4F73-9188-B196FBBC9410}.Release|x86.Build.0 = Release|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Debug|x86.Build.0 = Debug|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Release|x86.ActiveCfg = Release|Any CPU
+ {29DB956E-AC8F-4A2C-BBEF-71DDE91602FC}.Release|x86.Build.0 = Release|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.Debug|x86.Build.0 = Debug|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.DebugTests|Any CPU.ActiveCfg = DebugTests|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.DebugTests|Any CPU.Build.0 = DebugTests|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.DebugTests|x86.ActiveCfg = DebugTests|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.DebugTests|x86.Build.0 = DebugTests|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.Release|x86.ActiveCfg = Release|Any CPU
+ {A4BDB41D-096A-42E7-953E-99F7680141B0}.Release|x86.Build.0 = Release|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.Debug|x86.Build.0 = Debug|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.Release|x86.ActiveCfg = Release|Any CPU
+ {FC862191-9081-4A58-96FF-B57F17AC40A9}.Release|x86.Build.0 = Release|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.Debug|x86.Build.0 = Debug|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.DebugTests|Any CPU.ActiveCfg = DebugTests|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.DebugTests|Any CPU.Build.0 = DebugTests|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.DebugTests|x86.ActiveCfg = DebugTests|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.DebugTests|x86.Build.0 = DebugTests|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.Release|x86.ActiveCfg = Release|Any CPU
+ {6431E891-8E90-4510-AC8F-581536757EA0}.Release|x86.Build.0 = Release|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Debug|x86.Build.0 = Debug|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Release|x86.ActiveCfg = Release|Any CPU
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19}.Release|x86.Build.0 = Release|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Debug|x86.Build.0 = Debug|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Release|x86.ActiveCfg = Release|Any CPU
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0}.Release|x86.Build.0 = Release|Any CPU
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Debug|x86.ActiveCfg = Debug|x86
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Debug|x86.Build.0 = Debug|x86
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.DebugTests|x86.ActiveCfg = Debug|x86
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.DebugTests|x86.Build.0 = Debug|x86
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Release|x86.ActiveCfg = Release|x86
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72}.Release|x86.Build.0 = Release|x86
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Debug|x86.Build.0 = Debug|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Release|x86.ActiveCfg = Release|Any CPU
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E}.Release|x86.Build.0 = Release|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Debug|x86.Build.0 = Debug|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Release|x86.ActiveCfg = Release|Any CPU
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918}.Release|x86.Build.0 = Release|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Debug|x86.Build.0 = Debug|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Release|x86.ActiveCfg = Release|Any CPU
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648}.Release|x86.Build.0 = Release|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.Debug|x86.Build.0 = Debug|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.DebugTests|Any CPU.ActiveCfg = Debug|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.DebugTests|Any CPU.Build.0 = Debug|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.Release|x86.ActiveCfg = Release|Any CPU
+ {230C6FAF-11A1-4318-A482-69C7252652B1}.Release|x86.Build.0 = Release|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Debug|x86.Build.0 = Debug|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.DebugTests|Any CPU.ActiveCfg = DebugTests|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.DebugTests|Any CPU.Build.0 = DebugTests|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.DebugTests|x86.ActiveCfg = DebugTests|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.DebugTests|x86.Build.0 = DebugTests|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Release|x86.ActiveCfg = Release|Any CPU
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96}.Release|x86.Build.0 = Release|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Debug|x86.Build.0 = Debug|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.DebugTests|Any CPU.ActiveCfg = DebugTests|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.DebugTests|Any CPU.Build.0 = DebugTests|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.DebugTests|x86.ActiveCfg = Debug|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.DebugTests|x86.Build.0 = Debug|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Release|x86.ActiveCfg = Release|Any CPU
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {ACCC10D0-D079-4B9C-8269-71796A0EF822} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
+ {3FBD73F5-6098-45A8-A236-6CC2F093B804} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
+ {1A96AA51-2CBC-4901-91D1-53208AD5E6B6} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
+ {0926FE28-73BA-4F73-9188-B196FBBC9410} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
+ {A4BDB41D-096A-42E7-953E-99F7680141B0} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
+ {FC862191-9081-4A58-96FF-B57F17AC40A9} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
+ {6431E891-8E90-4510-AC8F-581536757EA0} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
+ {8A2E5556-55A4-4A1C-BE82-7603BEFA1A19} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
+ {ACEE719B-B932-4B41-84AE-0F0CA0CE37E0} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
+ {06F6709E-56E5-41ED-9BC1-55A8F648DD72} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
+ {20ED44A4-9D35-41F2-A317-C1EB9923379E} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
+ {E8F7FB9B-4FF0-4195-B064-D41A96E41918} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
+ {7BD22418-F4A9-422B-9FDE-A20708BA0648} = {8F9E5ECE-A6EB-4DC7-B3E2-20319BF21607}
+ {230C6FAF-11A1-4318-A482-69C7252652B1} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
+ {BF019B75-CECE-46E7-9E3D-620B2CAB6A96} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
+ {1C5CC61E-3080-42D8-BEE0-6113C8C57D5D} = {2DAB661A-26B2-440A-BC54-59F2C8404F12}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {B153C707-A96B-404C-B0E6-2225AE14B304}
+ EndGlobalSection
+EndGlobal
diff --git a/src/AspectInjector.Analyzer.Vsix/AspectInjector.Analyzer.Vsix.csproj b/src/AspectInjector.Analyzer.Vsix/AspectInjector.Analyzer.Vsix.csproj
old mode 100644
new mode 100755
index 0060da76..507c34a7
--- a/src/AspectInjector.Analyzer.Vsix/AspectInjector.Analyzer.Vsix.csproj
+++ b/src/AspectInjector.Analyzer.Vsix/AspectInjector.Analyzer.Vsix.csproj
@@ -60,7 +60,7 @@
-
+
{7bd22418-f4a9-422b-9fde-a20708ba0648}
FluentIL.Common
diff --git a/src/AspectInjector.Analyzer/AspectInjector.Analyzer.csproj b/src/AspectInjector.Analyzer/AspectInjector.Analyzer.csproj
old mode 100644
new mode 100755
index 76930355..610e107e
--- a/src/AspectInjector.Analyzer/AspectInjector.Analyzer.csproj
+++ b/src/AspectInjector.Analyzer/AspectInjector.Analyzer.csproj
@@ -1,4 +1,4 @@
-
+
netstandard2.0
@@ -18,7 +18,7 @@
-
+
diff --git a/src/AspectInjector.Core/AspectInjector.Core.csproj b/src/AspectInjector.Core/AspectInjector.Core.csproj
index bb2eee81..5ee09647 100755
--- a/src/AspectInjector.Core/AspectInjector.Core.csproj
+++ b/src/AspectInjector.Core/AspectInjector.Core.csproj
@@ -1,4 +1,4 @@
-
+
netstandard2.0
This is core library of Aspect Injector.
@@ -9,7 +9,7 @@
-
+
diff --git a/src/AspectInjector.Rules/AspectInjector.Rules.csproj b/src/AspectInjector.Rules/AspectInjector.Rules.csproj
old mode 100644
new mode 100755
index 1942b9f0..c8583d2e
--- a/src/AspectInjector.Rules/AspectInjector.Rules.csproj
+++ b/src/AspectInjector.Rules/AspectInjector.Rules.csproj
@@ -1,9 +1,9 @@
-
+
netstandard2.0
-
+
diff --git a/src/AspectInjector/AspectInjector.csproj b/src/AspectInjector/AspectInjector.csproj
index e71a4ad9..07394508 100755
--- a/src/AspectInjector/AspectInjector.csproj
+++ b/src/AspectInjector/AspectInjector.csproj
@@ -20,7 +20,6 @@
true
false
false
- link
none
diff --git a/src/FluentIL.Common/FluentIL.Common.csproj b/src/FluentIL.Common/FluentIL.Common.csproj
new file mode 100644
index 00000000..f736fc41
--- /dev/null
+++ b/src/FluentIL.Common/FluentIL.Common.csproj
@@ -0,0 +1,5 @@
+
+
+ netstandard2.0
+
+
diff --git a/src/FluentIL.Common/Rule.cs b/src/FluentIL.Common/Rule.cs
new file mode 100644
index 00000000..efa918b9
--- /dev/null
+++ b/src/FluentIL.Common/Rule.cs
@@ -0,0 +1,31 @@
+namespace FluentIL.Common
+{
+ public enum RuleSeverity
+ {
+ Hidden,
+ Info,
+ Warning,
+ Error
+ }
+
+ public class Rule
+ {
+
+ public Rule(string id, string title, string message, RuleSeverity severity, string description, string helpLinkUri)
+ {
+ Id = id;
+ Title = title;
+ Message = message;
+ Severity = severity;
+ Description = description;
+ HelpLinkUri = helpLinkUri;
+ }
+
+ public string Id { get; }
+ public string Title { get; }
+ public string Message { get; }
+ public RuleSeverity Severity { get; }
+ public string Description { get; }
+ public string HelpLinkUri { get; }
+ }
+}
diff --git a/src/FluentIL/Cuts/Arrays.cs b/src/FluentIL/Cuts/Arrays.cs
new file mode 100644
index 00000000..03b1ff00
--- /dev/null
+++ b/src/FluentIL/Cuts/Arrays.cs
@@ -0,0 +1,94 @@
+using FluentIL.Extensions;
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+using System;
+
+namespace FluentIL
+{
+ public static class Arrays
+ {
+ public static Cut CreateArray(this in Cut cut, TypeReference elementType, params PointCut[] elements)
+ {
+ var pc = cut
+ .Write(OpCodes.Ldc_I4, elements.Length)
+ .Write(OpCodes.Newarr, elementType);
+
+ for (var i = 0; i < elements.Length; i++)
+ {
+ pc = pc.Write(OpCodes.Dup);
+ pc = SetByIndex(pc, elementType, i, elements[i]);
+ }
+
+ return pc;
+ }
+
+ public static Cut GetByIndex(this in Cut pc, TypeReference elementType, int index)
+ {
+ return pc
+ .Write(OpCodes.Ldc_I4, index)
+ .Write(GetLoadOpcode(elementType));
+ }
+
+ public static Cut SetByIndex(this in Cut pc, TypeReference elementType, int index, PointCut value)
+ {
+ return pc
+ .Write(OpCodes.Ldc_I4, index)
+ .Here(value)
+ .Write(GetStoreOpcode(elementType));
+ }
+
+ private static OpCode GetLoadOpcode(TypeReference elementType)
+ {
+ switch (elementType.MetadataType)
+ {
+ case MetadataType.Class: return OpCodes.Ldelem_Ref;
+ case MetadataType.Object: return OpCodes.Ldelem_Ref;
+ case MetadataType.Double: return OpCodes.Ldelem_R8;
+ case MetadataType.Single: return OpCodes.Ldelem_R4;
+ case MetadataType.Int64: return OpCodes.Ldelem_I8;
+ case MetadataType.UInt64: return OpCodes.Ldelem_I8;
+ case MetadataType.Int32: return OpCodes.Ldelem_I4;
+ case MetadataType.UInt32: return OpCodes.Ldelem_U4;
+ case MetadataType.Int16: return OpCodes.Ldelem_I2;
+ case MetadataType.UInt16: return OpCodes.Ldelem_U2;
+ case MetadataType.Byte: return OpCodes.Ldelem_U1;
+ case MetadataType.SByte: return OpCodes.Ldelem_I1;
+ case MetadataType.Boolean: return OpCodes.Ldelem_I1;
+ case MetadataType.String: return OpCodes.Ldelem_Ref;
+ }
+
+ throw new NotSupportedException($"No instruction for {elementType.MetadataType}");
+ }
+
+
+ private static OpCode GetStoreOpcode(TypeReference elementType)
+ {
+ if(elementType.IsValueType && !elementType.IsPrimitive)
+ {
+ var r = elementType.Resolve();
+ if (r.IsEnum)
+ elementType = r.GetEnumType();
+ }
+
+ switch (elementType.MetadataType)
+ {
+ case MetadataType.Class: return OpCodes.Stelem_Ref;
+ case MetadataType.Object: return OpCodes.Stelem_Ref;
+ case MetadataType.Double: return OpCodes.Stelem_R8;
+ case MetadataType.Single: return OpCodes.Stelem_R4;
+ case MetadataType.Int64: return OpCodes.Stelem_I8;
+ case MetadataType.UInt64: return OpCodes.Stelem_I8;
+ case MetadataType.Int32: return OpCodes.Stelem_I4;
+ case MetadataType.UInt32: return OpCodes.Stelem_I4;
+ case MetadataType.Int16: return OpCodes.Stelem_I2;
+ case MetadataType.UInt16: return OpCodes.Stelem_I2;
+ case MetadataType.Byte: return OpCodes.Stelem_I1;
+ case MetadataType.SByte: return OpCodes.Stelem_I1;
+ case MetadataType.Boolean: return OpCodes.Stelem_I1;
+ case MetadataType.String: return OpCodes.Stelem_Ref;
+ }
+
+ throw new NotSupportedException($"No instruction for {elementType.MetadataType}");
+ }
+ }
+}
diff --git a/src/FluentIL/Cuts/Statements.cs b/src/FluentIL/Cuts/Statements.cs
new file mode 100644
index 00000000..1c9dc5b0
--- /dev/null
+++ b/src/FluentIL/Cuts/Statements.cs
@@ -0,0 +1,79 @@
+using FluentIL.Extensions;
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+using System;
+
+namespace FluentIL
+{
+ public static class Statements
+ {
+ public static Cut Return(this in Cut cut)
+ {
+ return cut.Write(OpCodes.Ret);
+ }
+
+ public static Cut Call(this in Cut cut, MethodReference method, PointCut args = null)
+ {
+ var cur_cut = cut;
+
+ if (!method.IsCallCompatible())
+ throw new ArgumentException($"Uninitialized generic call reference: {method}");
+
+ if (args != null) cur_cut = cur_cut.Here(args);
+
+ var methodDef = method.Resolve();
+
+ var code = OpCodes.Call;
+ if (methodDef.IsConstructor) code = OpCodes.Newobj;
+ else if (methodDef.IsVirtual) code = OpCodes.Callvirt;
+
+ return cur_cut.Write(code, method);
+ }
+
+ public static Cut IfEqual(this in Cut pc, PointCut left, PointCut right, PointCut pos = null, PointCut neg = null)
+ {
+ if (pos != null && neg != null)
+ return Compare(pc, left, right, OpCodes.Ceq, pos, neg);
+
+ if (pos != null)
+ return Compare(pc, left, right, OpCodes.Ceq, OpCodes.Brfalse, pos);
+
+ if (neg != null)
+ return Compare(pc, left, right, OpCodes.Ceq, OpCodes.Brtrue, neg);
+
+ return pc;
+ }
+
+ private static Cut Compare(in Cut cut, PointCut left, PointCut right, OpCode cmp, PointCut pos, PointCut neg)
+ {
+ var pc = cut
+ .Here(left)
+ .Here(right)
+ .Write(cmp);
+
+ var pe = pc.Here(pos);
+ var ne = pe.Here(neg);
+
+ var exit = ne.Write(OpCodes.Nop);
+
+ pc.Write(OpCodes.Brfalse, pe.Next());
+ pe.Write(OpCodes.Br, exit);
+
+ return exit;
+ }
+
+ private static Cut Compare(in Cut cut, PointCut left, PointCut right, OpCode cmp, OpCode brexit, PointCut action)
+ {
+ var pc = cut
+ .Here(left)
+ .Here(right)
+ .Write(cmp);
+
+ var exit = pc.Write(OpCodes.Nop);
+
+ pc.Write(brexit, exit).Here(action);
+
+ return exit;
+ }
+ }
+}
diff --git a/src/FluentIL/Cuts/TypeMembers.cs b/src/FluentIL/Cuts/TypeMembers.cs
new file mode 100644
index 00000000..06d8a162
--- /dev/null
+++ b/src/FluentIL/Cuts/TypeMembers.cs
@@ -0,0 +1,86 @@
+using FluentIL.Extensions;
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+using System;
+
+namespace FluentIL
+{
+ public static class TypeMembers
+ {
+ public static Cut ThisOrStatic(this in Cut cut) =>
+ cut.Method.HasThis ? cut.This() : cut;
+
+ public static Cut ThisOrNull(this in Cut cut) =>
+ cut.Method.HasThis ? cut.This() : cut.Null();
+
+ public static Cut This(this in Cut cut)
+ {
+ if (cut.Method.HasThis) return cut.Write(OpCodes.Ldarg_0);
+ else throw new InvalidOperationException("Attempt to load 'this' on static method.");
+ }
+
+ public static Cut Load(this in Cut cut, VariableDefinition variable) => cut
+ .Write(OpCodes.Ldloc, variable);
+
+ public static Cut Load(this in Cut cut, ParameterReference par) => cut
+ .Write(OpCodes.Ldarg, par.Resolve());
+
+ public static Cut Load(this in Cut cut, FieldReference field)
+ {
+ if(!field.IsCallCompatible())
+ throw new ArgumentException($"Uninitialized generic call reference: {field}");
+
+ var fieldDef = field.Resolve();
+
+ return cut.Write(fieldDef.IsStatic ? OpCodes.Ldsfld : OpCodes.Ldfld, field);
+ }
+
+ public static Cut LoadRef(this in Cut cut, VariableDefinition variable) => cut
+ .Write(OpCodes.Ldloca, variable);
+
+ public static Cut LoadRef(this in Cut cut, ParameterReference par) => cut
+ .Write(OpCodes.Ldarga, par.Resolve());
+
+ public static Cut LoadRef(this in Cut cut, FieldReference field)
+ {
+ if (!field.IsCallCompatible())
+ throw new ArgumentException($"Uninitialized generic call reference: {field}");
+
+ var fieldDef = field.Resolve();
+
+ return cut.Write(fieldDef.IsStatic ? OpCodes.Ldsflda : OpCodes.Ldflda, field);
+ }
+
+ public static Cut Store(this in Cut cut, FieldReference field, PointCut value = null)
+ {
+ if (!field.IsCallCompatible())
+ throw new ArgumentException($"Uninitialized generic call reference: {field}");
+
+ var fieldDef = field.Resolve();
+
+ return cut
+ .Here(value)
+ .Write(fieldDef.IsStatic ? OpCodes.Stsfld : OpCodes.Stfld, field);
+ }
+
+ public static Cut Store(this in Cut cut, VariableDefinition variable, PointCut value = null) => cut
+ .Here(value)
+ .Write(OpCodes.Stloc, variable);
+
+ public static Cut Store(this in Cut cut, ParameterReference par, PointCut value = null)
+ {
+ if (par.ParameterType.IsByReference)
+ {
+ return cut
+ .Load(par)
+ .Here(value);
+ }
+ else
+ {
+ return cut
+ .Here(value)
+ .Write(OpCodes.Starg, par.Resolve());
+ }
+ }
+ }
+}
diff --git a/src/FluentIL/Cuts/Values.cs b/src/FluentIL/Cuts/Values.cs
new file mode 100644
index 00000000..161ad898
--- /dev/null
+++ b/src/FluentIL/Cuts/Values.cs
@@ -0,0 +1,219 @@
+using FluentIL.Extensions;
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+using System;
+using System.Linq;
+
+namespace FluentIL
+{
+ public static class Values
+ {
+ public static Cut Pop(this in Cut pc) => pc
+ .Write(OpCodes.Pop);
+
+ public static Cut Null(this in Cut pc) => pc
+ .Write(OpCodes.Ldnull);
+
+ public static Cut Dup(this in Cut pc) => pc
+ .Write(OpCodes.Dup);
+
+ public static Cut Delegate(this in Cut cut, MethodReference method) => cut
+ .Write(OpCodes.Ldftn, method);
+
+ public static Cut TypeOf(this in Cut cut, TypeReference type) => cut
+ .Write(OpCodes.Ldtoken, type)
+ .Write(OpCodes.Call, GetTypeFromHandleMethod_Ref(cut));
+
+ public static Cut MethodOf(this in Cut cut, MethodReference method) => cut
+ .Write(OpCodes.Ldtoken, method)
+ .Write(OpCodes.Ldtoken, method.DeclaringType)
+ .Write(OpCodes.Call, GetMethodFromHandleMethod_Ref(cut));
+
+ public static Cut Value(this in Cut pc, object value)
+ {
+ if (value == null)
+ return Null(pc);
+
+ var valueType = value.GetType();
+
+ if (value is CustomAttributeArgument argument)
+ return AttributeArgument(pc, argument);
+ else if (value is TypeReference tr)
+ return TypeOf(pc, tr);
+ else if (valueType.IsValueType)
+ return Primitive(pc, value);
+ else if (value is string str)
+ return pc.Write(OpCodes.Ldstr, str);
+ else
+ throw new NotSupportedException(valueType.ToString());
+ }
+
+ public static Cut Primitive(this in Cut pc, object value)
+ {
+ var valueType = value.GetType();
+
+ switch (value)
+ {
+#pragma warning disable S2583 // Conditionally executed code should be reachable
+ case bool bo: return pc.Write(bo ? OpCodes.Ldc_I4_1 : OpCodes.Ldc_I4_0);
+#pragma warning restore S2583 // Conditionally executed code should be reachable
+ case long l: return pc.Write(OpCodes.Ldc_I8, l);
+ case ulong ul: return pc.Write(OpCodes.Ldc_I8, unchecked((long)ul));
+ case double d: return pc.Write(OpCodes.Ldc_R8, d);
+ case int i: return pc.Write(OpCodes.Ldc_I4, i);
+ case uint ui: return pc.Write(OpCodes.Ldc_I4, unchecked((int)ui));
+ case float fl: return pc.Write(OpCodes.Ldc_R4, fl);
+ case sbyte sb: return pc.Write(OpCodes.Ldc_I4, (int)sb);
+ case byte b: return pc.Write(OpCodes.Ldc_I4, (int)b);
+ case ushort us: return pc.Write(OpCodes.Ldc_I4, us);
+ case short s: return pc.Write(OpCodes.Ldc_I4, s);
+ case char c: return pc.Write(OpCodes.Ldc_I4, c);
+
+ default: throw new NotSupportedException(valueType.ToString());
+ }
+ }
+
+ public static Cut Cast(this in Cut cut, TypeReference typeOnStack, TypeReference expectedType)
+ {
+ var result = cut;
+
+ if (typeOnStack.Match(expectedType))
+ return result;
+
+ if (expectedType.IsByReference)
+ {
+ var elementType = ((ByReferenceType)expectedType).ElementType;
+ result = result.Cast(typeOnStack, elementType);
+ return StoreByReference(result, elementType);
+ }
+
+ if (typeOnStack.IsByReference)
+ {
+ typeOnStack = ((ByReferenceType)typeOnStack).ElementType;
+ result = LoadByReference(result, typeOnStack);
+ }
+
+ if (typeOnStack.Match(expectedType))
+ return result;
+
+ if (expectedType.IsValueType || expectedType.IsGenericParameter)
+ {
+ if (!typeOnStack.IsValueType)
+ return result.Write(OpCodes.Unbox_Any, expectedType);
+ }
+ else
+ {
+ if (typeOnStack.IsValueType || typeOnStack.IsGenericParameter)
+ return result.Write(OpCodes.Box, typeOnStack);
+ else if (!expectedType.Match(cut.TypeSystem.Object))
+ return result.Write(OpCodes.Castclass, expectedType);
+ else
+ return result;
+ }
+
+ throw new InvalidCastException($"Cannot cast '{typeOnStack}' to '{expectedType}'");
+ }
+
+ private static Cut StoreByReference(in Cut pc, TypeReference elemType)
+ {
+ switch (elemType.MetadataType)
+ {
+ case MetadataType.Class: return pc.Write(OpCodes.Stind_Ref);
+ case MetadataType.Object: return pc.Write(OpCodes.Stind_Ref);
+ case MetadataType.String: return pc.Write(OpCodes.Stind_Ref);
+ case MetadataType.Array: return pc.Write(OpCodes.Stind_Ref);
+ case MetadataType.MVar: return pc.Write(OpCodes.Stobj, elemType);
+ case MetadataType.Var: return pc.Write(OpCodes.Stobj, elemType);
+ case MetadataType.ValueType: return pc.Write(OpCodes.Stobj, elemType);
+ case MetadataType.GenericInstance: return pc.Write(OpCodes.Stobj, elemType);
+ case MetadataType.Double: return pc.Write(OpCodes.Stind_R8);
+ case MetadataType.Single: return pc.Write(OpCodes.Stind_R4);
+ case MetadataType.Int64: return pc.Write(OpCodes.Stind_I8);
+ case MetadataType.UInt64: return pc.Write(OpCodes.Stind_I8);
+ case MetadataType.Int32: return pc.Write(OpCodes.Stind_I4);
+ case MetadataType.UInt32: return pc.Write(OpCodes.Stind_I4);
+ case MetadataType.Int16: return pc.Write(OpCodes.Stind_I2);
+ case MetadataType.UInt16: return pc.Write(OpCodes.Stind_I2);
+ case MetadataType.Byte: return pc.Write(OpCodes.Stind_I1);
+ case MetadataType.SByte: return pc.Write(OpCodes.Stind_I1);
+ case MetadataType.Boolean: return pc.Write(OpCodes.Stind_I1);
+ case MetadataType.Char: return pc.Write(OpCodes.Stind_I2);
+ case MetadataType.UIntPtr: return pc.Write(OpCodes.Stind_I);
+ case MetadataType.IntPtr: return pc.Write(OpCodes.Stind_I);
+ }
+
+ throw new NotSupportedException($"No instruction for {elemType.MetadataType}");
+ }
+
+ private static Cut LoadByReference(in Cut pc, TypeReference elemType)
+ {
+ switch (elemType.MetadataType)
+ {
+ case MetadataType.Class: return pc.Write(OpCodes.Ldind_Ref);
+ case MetadataType.Object: return pc.Write(OpCodes.Ldind_Ref);
+ case MetadataType.String: return pc.Write(OpCodes.Ldind_Ref);
+ case MetadataType.Array: return pc.Write(OpCodes.Ldind_Ref);
+ case MetadataType.MVar: return pc.Write(OpCodes.Ldobj, elemType);
+ case MetadataType.Var: return pc.Write(OpCodes.Ldobj, elemType);
+ case MetadataType.ValueType: return pc.Write(OpCodes.Ldobj, elemType);
+ case MetadataType.GenericInstance: return pc.Write(OpCodes.Ldobj, elemType);
+ case MetadataType.Double: return pc.Write(OpCodes.Ldind_R8);
+ case MetadataType.Single: return pc.Write(OpCodes.Ldind_R4);
+ case MetadataType.Int64: return pc.Write(OpCodes.Ldind_I8);
+ case MetadataType.UInt64: return pc.Write(OpCodes.Ldind_I8);
+ case MetadataType.Int32: return pc.Write(OpCodes.Ldind_I4);
+ case MetadataType.UInt32: return pc.Write(OpCodes.Ldind_U4);
+ case MetadataType.Int16: return pc.Write(OpCodes.Ldind_I2);
+ case MetadataType.UInt16: return pc.Write(OpCodes.Ldind_U2);
+ case MetadataType.Byte: return pc.Write(OpCodes.Ldind_U1);
+ case MetadataType.SByte: return pc.Write(OpCodes.Ldind_I1);
+ case MetadataType.Boolean: return pc.Write(OpCodes.Ldind_U1);
+ case MetadataType.Char: return pc.Write(OpCodes.Ldind_U2);
+ case MetadataType.UIntPtr: return pc.Write(OpCodes.Ldind_I);
+ case MetadataType.IntPtr: return pc.Write(OpCodes.Ldind_I);
+ }
+
+ throw new NotSupportedException($"No instruction for {elemType.MetadataType}");
+ }
+
+ private static Cut AttributeArgument(in Cut cut, CustomAttributeArgument argument)
+ {
+ var val = argument.Value;
+
+ var pc = cut;
+
+ if (val != null && val.GetType().IsArray)
+ pc = pc.CreateArray(
+ argument.Type.GetElementType(),
+ ((Array)val).Cast