blob: a15b2ca4435d6bfe9d5830eb4ae43d2ef4434f4c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
using System;
using Xamarin.Forms.Internals;
namespace Xamarin.Forms.Xaml
{
[ContentProperty("Key")]
public sealed class DynamicResourceExtension : IMarkupExtension<DynamicResource>
{
public string Key { get; set; }
public object ProvideValue(IServiceProvider serviceProvider)
{
return ((IMarkupExtension<DynamicResource>)this).ProvideValue(serviceProvider);
}
DynamicResource IMarkupExtension<DynamicResource>.ProvideValue(IServiceProvider serviceProvider)
{
if (Key == null)
{
var lineInfoProvider = serviceProvider.GetService(typeof (IXmlLineInfoProvider)) as IXmlLineInfoProvider;
var lineInfo = (lineInfoProvider != null) ? lineInfoProvider.XmlLineInfo : new XmlLineInfo();
throw new XamlParseException("DynamicResource markup require a Key", lineInfo);
}
return new DynamicResource(Key);
}
}
}
|