Skip to content

Instantly share code, notes, and snippets.

@danwalmsley
Last active February 19, 2019 20:51
Show Gist options
  • Save danwalmsley/e2aaf3fc076046f83e1ea944c40d92d7 to your computer and use it in GitHub Desktop.
Save danwalmsley/e2aaf3fc076046f83e1ea944c40d92d7 to your computer and use it in GitHub Desktop.
button.xaml
// Decompiled with JetBrains decompiler
// Type: XamlIlLoader.resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default
// Assembly: resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 13FAABA2-D0DB-4C6E-85C8-B7A4268C35DE
// Assembly location: C:\Users\dan\repos\Avalonia\samples\ControlCatalog.NetCore\bin\Debug\netcoreapp2.0\emit\resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.dll
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Data;
using Avalonia.LogicalTree;
using Avalonia.Markup.Xaml.Converters;
using Avalonia.Markup.Xaml.Templates;
using Avalonia.Markup.Xaml.XamlIl.Runtime;
using Avalonia.Styling;
using Portable.Xaml;
using Portable.Xaml.Markup;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Runtime.InteropServices;
namespace XamlIlLoader
{
public class resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default
{
public static void __AvaloniaXamlIlPopulate([In] IServiceProvider obj0, [In] Styles obj1)
{
resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext avaloniaXamlIlContext = new resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext(obj0);
avaloniaXamlIlContext.RootObject = obj1;
Styles styles1 = obj1;
avaloniaXamlIlContext.ParentsStack.Add((object) styles1);
Styles styles2 = styles1;
Style style1;
Style style2 = style1 = new Style();
avaloniaXamlIlContext.ParentsStack.Add((object) style2);
Style style3 = style2;
style3.Selector = (Selector) new SelectorTypeConverter().ConvertFrom((ITypeDescriptorContext) avaloniaXamlIlContext, (CultureInfo) CultureInfo.InvariantCulture, (object) "Button");
IList<ISetter> setters1 = style3.Setters;
Setter setter1;
Setter setter2 = setter1 = new Setter();
avaloniaXamlIlContext.ParentsStack.Add((object) setter2);
Setter setter3 = setter2;
setter3.Property = (AvaloniaProperty) new AvaloniaPropertyTypeConverter().ConvertFrom((ITypeDescriptorContext) avaloniaXamlIlContext, (CultureInfo) CultureInfo.InvariantCulture, (object) "Padding");
setter3.Value = (object) "5";
avaloniaXamlIlContext.ParentsStack.RemoveAt(avaloniaXamlIlContext.ParentsStack.Count - 1);
((ICollection<ISetter>) setters1).Add((ISetter) setter1);
IList<ISetter> setters2 = style3.Setters;
Setter setter4;
Setter setter5 = setter4 = new Setter();
avaloniaXamlIlContext.ParentsStack.Add((object) setter5);
Setter setter6 = setter5;
setter6.Property = (AvaloniaProperty) new AvaloniaPropertyTypeConverter().ConvertFrom((ITypeDescriptorContext) avaloniaXamlIlContext, (CultureInfo) CultureInfo.InvariantCulture, (object) "Template");
ControlTemplate controlTemplate1;
ControlTemplate controlTemplate2 = controlTemplate1 = new ControlTemplate();
avaloniaXamlIlContext.ParentsStack.Add((object) controlTemplate2);
controlTemplate2.Content = (object) XamlIlRuntimeHelpers.DeferredTransformationFactoryV1((Func<IServiceProvider, object>) new Func<IServiceProvider, object>(resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.XamlIlClosure_94cf0f24\u002D3999\u002D4d00\u002Db476\u002D6694dfb1ae3d.Build), (IServiceProvider) avaloniaXamlIlContext);
avaloniaXamlIlContext.ParentsStack.RemoveAt(avaloniaXamlIlContext.ParentsStack.Count - 1);
setter6.Value = (object) controlTemplate1;
avaloniaXamlIlContext.ParentsStack.RemoveAt(avaloniaXamlIlContext.ParentsStack.Count - 1);
((ICollection<ISetter>) setters2).Add((ISetter) setter4);
avaloniaXamlIlContext.ParentsStack.RemoveAt(avaloniaXamlIlContext.ParentsStack.Count - 1);
styles2.Add((IStyle) style1);
avaloniaXamlIlContext.ParentsStack.RemoveAt(avaloniaXamlIlContext.ParentsStack.Count - 1);
}
public static Styles __AvaloniaXamlIlBuild([In] IServiceProvider obj0)
{
Styles styles = new Styles();
resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlPopulate(obj0, styles);
return styles;
}
private class __AvaloniaXamlIlNsInfo : IAvaloniaXamlIlXmlNamespaceInfoProvider
{
public static IAvaloniaXamlIlXmlNamespaceInfoProvider Singleton = (IAvaloniaXamlIlXmlNamespaceInfoProvider) new resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlNsInfo();
IReadOnlyDictionary<string, IReadOnlyList<AvaloniaXamlIlXmlNamespaceInfo>> _services;
public virtual IReadOnlyDictionary<string, IReadOnlyList<AvaloniaXamlIlXmlNamespaceInfo>> get_XmlNamespaces()
{
return this._services;
}
public virtual IReadOnlyDictionary<string, IReadOnlyList<AvaloniaXamlIlXmlNamespaceInfo>> XmlNamespaces
{
get
{
return this._services;
}
}
public __AvaloniaXamlIlNsInfo()
{
Dictionary<string, IReadOnlyList<AvaloniaXamlIlXmlNamespaceInfo>> dictionary = new Dictionary<string, IReadOnlyList<AvaloniaXamlIlXmlNamespaceInfo>>();
this._services = (IReadOnlyDictionary<string, IReadOnlyList<AvaloniaXamlIlXmlNamespaceInfo>>) dictionary;
List<AvaloniaXamlIlXmlNamespaceInfo> xmlNamespaceInfoList = new List<AvaloniaXamlIlXmlNamespaceInfo>();
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Animation",
ClrAssemblyName = "Avalonia.Animation"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Animation.Easings",
ClrAssemblyName = "Avalonia.Animation"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Animation.Animators",
ClrAssemblyName = "Avalonia.Animation"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Data.Converters",
ClrAssemblyName = "Avalonia.Base"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia",
ClrAssemblyName = "Avalonia.Controls"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Controls",
ClrAssemblyName = "Avalonia.Controls"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Controls.Embedding",
ClrAssemblyName = "Avalonia.Controls"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Controls.Presenters",
ClrAssemblyName = "Avalonia.Controls"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Controls.Primitives",
ClrAssemblyName = "Avalonia.Controls"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Controls.Shapes",
ClrAssemblyName = "Avalonia.Controls"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Controls.Templates",
ClrAssemblyName = "Avalonia.Controls"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Input",
ClrAssemblyName = "Avalonia.Input"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Layout",
ClrAssemblyName = "Avalonia.Layout"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Data",
ClrAssemblyName = "Avalonia.Markup"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Markup.Data",
ClrAssemblyName = "Avalonia.Markup"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Markup.Xaml.MarkupExtensions",
ClrAssemblyName = "Avalonia.Markup.Xaml"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Markup.Xaml.Styling",
ClrAssemblyName = "Avalonia.Markup.Xaml"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Markup.Xaml.Templates",
ClrAssemblyName = "Avalonia.Markup.Xaml"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Controls",
ClrAssemblyName = "Avalonia.Styling"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.LogicalTree",
ClrAssemblyName = "Avalonia.Styling"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Styling",
ClrAssemblyName = "Avalonia.Styling"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Animation",
ClrAssemblyName = "Avalonia.Visuals"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia.Media",
ClrAssemblyName = "Avalonia.Visuals"
});
xmlNamespaceInfoList.Add(new AvaloniaXamlIlXmlNamespaceInfo()
{
ClrNamespace = "Avalonia",
ClrAssemblyName = "Avalonia.Visuals"
});
dictionary.Add("", (IReadOnlyList<AvaloniaXamlIlXmlNamespaceInfo>) xmlNamespaceInfoList);
}
}
private class __AvaloniaXamlIlContext : IRootObjectProvider, IAvaloniaXamlIlParentStackProvider, ITypeDescriptorContext, IProvideValueTarget, IUriContext, IServiceProvider
{
public Styles RootObject;
IServiceProvider _sp;
IServiceProvider _innerSp;
public List<object> ParentsStack;
IEnumerable<object> _parentStackEnumerable;
public object ProvideTargetObject;
public object ProvideTargetProperty;
Uri _baseUri;
object IRootObjectProvider.get_RootObject()
{
if (this.RootObject != null)
return (object) this.RootObject;
if (this._sp != null)
{
// ISSUE: type reference
IRootObjectProvider service = (IRootObjectProvider) this._sp.GetService(Type.GetTypeFromHandle((RuntimeTypeHandle) __typeref (IRootObjectProvider)));
if (service != null)
return service.RootObject;
}
return (object) null;
}
object IRootObjectProvider.RootObject
{
get
{
if (this.RootObject != null)
return (object) this.RootObject;
if (this._sp != null)
{
// ISSUE: type reference
IRootObjectProvider service = (IRootObjectProvider) this._sp.GetService(Type.GetTypeFromHandle((RuntimeTypeHandle) __typeref (IRootObjectProvider)));
if (service != null)
return service.RootObject;
}
return (object) null;
}
}
IEnumerable<object> IAvaloniaXamlIlParentStackProvider.get_Parents()
{
return this._parentStackEnumerable;
}
IEnumerable<object> IAvaloniaXamlIlParentStackProvider.Parents
{
get
{
return this._parentStackEnumerable;
}
}
IContainer ITypeDescriptorContext.Container
{
get
{
return (IContainer) null;
}
}
IContainer ITypeDescriptorContext.get_Container()
{
return (IContainer) null;
}
object ITypeDescriptorContext.get_Instance()
{
return (object) null;
}
object ITypeDescriptorContext.Instance
{
get
{
return (object) null;
}
}
PropertyDescriptor ITypeDescriptorContext.get_PropertyDescriptor()
{
return (PropertyDescriptor) null;
}
PropertyDescriptor ITypeDescriptorContext.PropertyDescriptor
{
get
{
return (PropertyDescriptor) null;
}
}
bool ITypeDescriptorContext.OnComponentChanging()
{
throw new NotSupportedException();
}
void ITypeDescriptorContext.OnComponentChanged()
{
throw new NotSupportedException();
}
object IProvideValueTarget.get_TargetObject()
{
return this.ProvideTargetObject;
}
object IProvideValueTarget.TargetObject
{
get
{
return this.ProvideTargetObject;
}
}
object IProvideValueTarget.get_TargetProperty()
{
return this.ProvideTargetProperty;
}
object IProvideValueTarget.TargetProperty
{
get
{
return this.ProvideTargetProperty;
}
}
public virtual Uri get_BaseUri()
{
if ((object) this._baseUri != null)
return this._baseUri;
this._baseUri = new Uri("resm:Avalonia.Themes.Default.Button.xaml?assembly=Avalonia.Themes.Default");
return this._baseUri;
}
public virtual Uri BaseUri
{
get
{
if ((object) this._baseUri != null)
return this._baseUri;
this._baseUri = new Uri("resm:Avalonia.Themes.Default.Button.xaml?assembly=Avalonia.Themes.Default");
return this._baseUri;
}
[param: In] set
{
this._baseUri = value;
}
}
public virtual void set_BaseUri([In] Uri obj0)
{
this._baseUri = obj0;
}
public virtual object GetService([In] Type obj0)
{
if (this._innerSp != null)
{
object service = this._innerSp.GetService(obj0);
if (service != null)
return service;
}
// ISSUE: type reference
if (Type.GetTypeFromHandle((RuntimeTypeHandle) __typeref (IRootObjectProvider)).Equals(obj0))
return (object) this;
// ISSUE: type reference
if (Type.GetTypeFromHandle((RuntimeTypeHandle) __typeref (IAvaloniaXamlIlParentStackProvider)).Equals(obj0))
return (object) this;
// ISSUE: type reference
if (Type.GetTypeFromHandle((RuntimeTypeHandle) __typeref (ITypeDescriptorContext)).Equals(obj0))
return (object) this;
// ISSUE: type reference
if (Type.GetTypeFromHandle((RuntimeTypeHandle) __typeref (IProvideValueTarget)).Equals(obj0))
return (object) this;
// ISSUE: type reference
if (Type.GetTypeFromHandle((RuntimeTypeHandle) __typeref (IUriContext)).Equals(obj0))
return (object) this;
// ISSUE: type reference
if (Type.GetTypeFromHandle((RuntimeTypeHandle) __typeref (IAvaloniaXamlIlXmlNamespaceInfoProvider)).Equals(obj0))
return (object) resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlNsInfo.Singleton;
if (this._sp != null)
return this._sp.GetService(obj0);
return (object) null;
}
public __AvaloniaXamlIlContext([In] IServiceProvider obj0)
{
this._sp = obj0;
this.ParentsStack = new List<object>();
this._parentStackEnumerable = (IEnumerable<object>) new resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext.ParentStackEnumerable(this);
this._innerSp = (IServiceProvider) XamlIlRuntimeHelpers.CreateInnerServiceProviderV1((IServiceProvider) this);
}
private class ParentStackEnumerable : IEnumerable<object>
{
resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext _parent;
public ParentStackEnumerable(
[In] resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext obj0)
{
this._parent = obj0;
}
public virtual IEnumerator<object> GetEnumerator()
{
return (IEnumerator<object>) new resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext.ParentStackEnumerable.Enumerator(this._parent);
}
IEnumerator IEnumerable.GetEnumerator()
{
return (IEnumerator) this.GetEnumerator();
}
public class Enumerator : IEnumerator<object>
{
int _state;
resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext _parent;
List<object> _list;
int _listIndex;
object _current;
IEnumerator<object> _parentEnumerator;
public Enumerator(
[In] resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext obj0)
{
this._parent = obj0;
}
public virtual object get_Current()
{
return this._current;
}
public virtual object Current
{
get
{
return this._current;
}
}
public virtual void Reset()
{
throw new NotSupportedException();
}
public virtual void Dispose()
{
if (this._parentEnumerator == null)
return;
this._parentEnumerator.Dispose();
}
public virtual bool MoveNext()
{
if (this._state != 0)
{
if (this._state != 1)
{
if (this._state != 2)
return false;
goto label_9;
}
}
else
{
resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext.ParentStackEnumerable.Enumerator enumerator = this;
enumerator._list = enumerator._parent.ParentsStack;
enumerator._listIndex = this._list.Count - 1;
this._state = 1;
}
if (this._listIndex >= 0)
{
this._current = this._list[this._listIndex];
--this._listIndex;
return true;
}
IAvaloniaXamlIlParentStackProvider service;
// ISSUE: type reference
if (this._parent._sp != null && (service = (IAvaloniaXamlIlParentStackProvider) this._parent._sp.GetService(Type.GetTypeFromHandle((RuntimeTypeHandle) __typeref (IAvaloniaXamlIlParentStackProvider)))) != null)
{
this._parentEnumerator = ((IEnumerable<object>) service.Parents).GetEnumerator();
this._state = 2;
}
else
goto label_11;
label_9:
if (this._parentEnumerator.MoveNext())
{
this._current = this._parentEnumerator.Current;
return true;
}
label_11:
this._state = 3;
return false;
}
}
}
}
private class XamlIlClosure_94cf0f24\u002D3999\u002D4d00\u002Db476\u002D6694dfb1ae3d
{
public static object Build([In] IServiceProvider obj0)
{
resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext avaloniaXamlIlContext = new resm_Avalonia_Themes_Default_Button_xaml_assembly_Avalonia_Themes_Default.__AvaloniaXamlIlContext(obj0);
if (obj0 != null)
{
// ISSUE: type reference
object service = obj0.GetService(Type.GetTypeFromHandle((RuntimeTypeHandle) __typeref (IRootObjectProvider)));
if (service != null)
{
object rootObject = ((IRootObjectProvider) service).RootObject;
avaloniaXamlIlContext.RootObject = (Styles) rootObject;
}
}
ContentPresenter contentPresenter1 = new ContentPresenter();
contentPresenter1.BeginInit();
ContentPresenter contentPresenter2 = contentPresenter1;
avaloniaXamlIlContext.ParentsStack.Add((object) contentPresenter2);
ContentPresenter contentPresenter3;
object element = (object) (contentPresenter3 = contentPresenter2);
string name = "PART_ContentPresenter";
((StyledElement) element).Name = name;
((ILogical) element).FindNameScope()?.Register(name, element);
TemplateBinding templateBinding1;
TemplateBinding templateBinding2 = templateBinding1 = new TemplateBinding((AvaloniaProperty) new AvaloniaPropertyTypeConverter().ConvertFrom((ITypeDescriptorContext) avaloniaXamlIlContext, (CultureInfo) CultureInfo.InvariantCulture, (object) "Content"));
avaloniaXamlIlContext.ParentsStack.Add((object) templateBinding2);
avaloniaXamlIlContext.ParentsStack.RemoveAt(avaloniaXamlIlContext.ParentsStack.Count - 1);
TemplateBinding templateBinding3 = templateBinding1;
XamlIlRuntimeHelpers.ApplyNonMatchingMarkupExtensionV1((object) contentPresenter3, (object) ContentPresenter.ContentProperty, (IServiceProvider) avaloniaXamlIlContext, (object) templateBinding3);
TemplateBinding templateBinding4;
TemplateBinding templateBinding5 = templateBinding4 = new TemplateBinding((AvaloniaProperty) new AvaloniaPropertyTypeConverter().ConvertFrom((ITypeDescriptorContext) avaloniaXamlIlContext, (CultureInfo) CultureInfo.InvariantCulture, (object) "Padding"));
avaloniaXamlIlContext.ParentsStack.Add((object) templateBinding5);
avaloniaXamlIlContext.ParentsStack.RemoveAt(avaloniaXamlIlContext.ParentsStack.Count - 1);
TemplateBinding templateBinding6 = templateBinding4;
XamlIlRuntimeHelpers.ApplyNonMatchingMarkupExtensionV1((object) contentPresenter3, (object) ContentPresenter.PaddingProperty, (IServiceProvider) avaloniaXamlIlContext, (object) templateBinding6);
avaloniaXamlIlContext.ParentsStack.RemoveAt(avaloniaXamlIlContext.ParentsStack.Count - 1);
contentPresenter1.EndInit();
return (object) contentPresenter1;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment