internal static void AddViewManagers(this IReactPackageBuilder packageBuilder) { foreach (var typeInfo in typeof(ReactPackageBuilderExtensions).GetTypeInfo().Assembly.DefinedTypes) { if (!typeInfo.IsAbstract && typeInfo.ImplementedInterfaces.Contains(typeof(IViewManager))) { if (typeInfo.DeclaredConstructors.Any(cInfo => cInfo.GetParameters().Length == 1 && cInfo.GetParameters()[0].ParameterType == typeof(IReactContext))) { packageBuilder.AddViewManager(typeInfo.Name, (reactContext) => (IViewManager)Activator.CreateInstance(typeInfo.AsType(), reactContext)); } else if (typeInfo.DeclaredConstructors.Any(cInfo => cInfo.GetParameters().Length == 0)) { packageBuilder.AddViewManager(typeInfo.Name, (reactContext) => (IViewManager)Activator.CreateInstance(typeInfo.AsType())); } } } }
internal static void AddViewManagers(this IReactPackageBuilder packageBuilder) { foreach (var typeInfo in typeof(ReactPackageBuilderExtensions).GetTypeInfo().Assembly.DefinedTypes) { if (!typeInfo.IsAbstract && typeInfo.ImplementedInterfaces.Contains(typeof(IViewManager))) { packageBuilder.AddViewManager(typeInfo.Name, () => (IViewManager)Activator.CreateInstance(typeInfo.AsType())); } } }
public void CreatePackage(IReactPackageBuilder packageBuilder) { packageBuilder.AddViewManager("LottieAnimationView", () => { return(new LottieAnimationViewManager()); }); }