2 using Tizen.NUI.Binding;
4 namespace Tizen.NUI.Xaml
6 [ContentProperty(nameof(TypeName))]
7 [ProvideCompiled("Tizen.NUI.Xaml.Build.Tasks.TypeExtension")]
8 internal class TypeExtension : IMarkupExtension<Type>
10 public string TypeName { get; set; }
12 public Type ProvideValue(IServiceProvider serviceProvider)
14 if (string.IsNullOrEmpty(TypeName))
15 throw new InvalidOperationException("TypeName isn't set.");
16 if (serviceProvider == null)
17 throw new ArgumentNullException(nameof(serviceProvider));
18 var typeResolver = serviceProvider.GetService(typeof(IXamlTypeResolver)) as IXamlTypeResolver;
19 if (typeResolver == null)
20 throw new ArgumentException("No IXamlTypeResolver in IServiceProvider");
22 return typeResolver.Resolve(TypeName, serviceProvider);
25 object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
27 return (this as IMarkupExtension<Type>).ProvideValue(serviceProvider);