{
public ArrayExtension ()
{
-#if MOONLIGHT
- items = new List<object> ();
-#else
items = new ArrayList ();
-#endif
}
public ArrayExtension (Array elements)
if (elements == null)
throw new ArgumentNullException ("elements");
Type = elements.GetType ().GetElementType ();
-#if MOONLIGHT
- items = new List<object> ();
- foreach (var element in elements)
- items.Add (element);
-#else
items = new ArrayList (elements);
-#endif
}
public ArrayExtension (Type arrayType)
if (arrayType == null)
throw new ArgumentNullException ("arrayType");
Type = arrayType;
-#if MOONLIGHT
- items = new List<object> ();
-#else
items = new ArrayList ();
-#endif
}
[ConstructorArgument ("arrayType")]
public static TypeConverter GetTypeConverter (this Type type)
{
-#if MOONLIGHT
- if (typeof (IConvertible).IsAssignableFrom (type))
- return (TypeConverter) Activator.CreateInstance (typeof (ConvertibleTypeConverter<>).MakeGenericType (new Type [] {type}));
- var name = type.GetCustomAttribute<TypeConverterAttribute> (true).ConverterTypeName;
- return (TypeConverter) Activator.CreateInstance (type.Assembly.GetType (name) ?? Type.GetType (name));
-#else
return TypeDescriptor.GetConverter (type);
-#endif
}
// FIXME: I want this to cover all the existing types and make it valid in both NET_2_1 and !NET_2_1.
}
IEnumerable<Assembly> AssembliesInScope {
-#if MOONLIGHT
- get { return reference_assemblies; }
-#else
get { return reference_assemblies ?? AppDomain.CurrentDomain.GetAssemblies (); }
-#endif
}
public bool SupportMarkupExtensionsWithDuplicateArity { get; private set; }
protected internal virtual Assembly OnAssemblyResolve (string assemblyName)
{
-#if MOONLIGHT
- return Assembly.Load (assemblyName);
-#else
return Assembly.LoadWithPartialName (assemblyName);
-#endif
}
public virtual bool TryGetCompatibleXamlNamespace (string xamlNamespace, out string compatibleNamespace)
// It's still not decent to check CollectionConverter.
var tct = t.GetTypeConverter ().GetType ();
-#if MOONLIGHT
- if (tct != typeof (TypeConverter) && tct.Name != "CollectionConverter" && tct.Name != "ReferenceConverter")
-#else
if (tct != typeof (TypeConverter) && tct != typeof (CollectionConverter) && tct != typeof (ReferenceConverter))
-#endif
return SchemaContext.GetValueConverter<TypeConverter> (tct, this);
return null;
}