diff options
author | Stephane Delcroix <stephane@delcroix.org> | 2017-02-17 09:57:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-17 09:57:31 +0100 |
commit | 53b1bbaf366a43832df1e941e42ca3d0b4c6fcbf (patch) | |
tree | 6255a755758c0179584edc471a0a20bc56caa03b /Xamarin.Forms.Build.Tasks | |
parent | 1522c0e48d3feacfbaf68a0016e35e21d9c5940c (diff) | |
download | xamarin-forms-53b1bbaf366a43832df1e941e42ca3d0b4c6fcbf.tar.gz xamarin-forms-53b1bbaf366a43832df1e941e42ca3d0b4c6fcbf.tar.bz2 xamarin-forms-53b1bbaf366a43832df1e941e42ca3d0b4c6fcbf.zip |
[XamlC] compile NullExtension markup (#750)
Diffstat (limited to 'Xamarin.Forms.Build.Tasks')
-rw-r--r-- | Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs | 18 | ||||
-rw-r--r-- | Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs b/Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs new file mode 100644 index 00000000..6701dacc --- /dev/null +++ b/Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using Mono.Cecil; +using Mono.Cecil.Cil; +using Xamarin.Forms.Xaml; + +namespace Xamarin.Forms.Build.Tasks +{ + class NullExtension : ICompiledMarkupExtension + { + + public IEnumerable<Instruction> ProvideValue(IElementNode node, ModuleDefinition module, ILContext context, out TypeReference typeRef) + { + typeRef = module.TypeSystem.Object; + return new[] { Instruction.Create(OpCodes.Ldnull) }; + } + } +}
\ No newline at end of file diff --git a/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj b/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj index 0175a4b8..880fa0c3 100644 --- a/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj +++ b/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj @@ -111,6 +111,7 @@ <Compile Include="CompiledValueProviders\PassthroughValueProvider.cs" /> <Compile Include="CompiledConverters\ListStringTypeConverter.cs" /> <Compile Include="CompiledMarkupExtensions\TypeExtension.cs" /> + <Compile Include="CompiledMarkupExtensions\NullExtension.cs" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Target Name="AfterBuild"> |