// In .NETCore, AppDomain feature is not supported.
// The list of assemblies returned by AppDomain.GetAssemblies() method should be registered manually.
// The assembly of the executing application and referenced assemblies of it are added into the list here.
- Assembly asm = application.GetType().GetTypeInfo().Assembly;
- TizenPlatformServices.AppDomain.CurrentDomain.RegisterAssembly(asm);
- foreach (var refName in asm.GetReferencedAssemblies())
- {
- if (!refName.Name.StartsWith("System.") && !refName.Name.StartsWith("Microsoft."))
- {
- try
- {
- Assembly refAsm = Assembly.Load(refName);
- TizenPlatformServices.AppDomain.CurrentDomain.RegisterAssembly(refAsm);
- }
- catch
- {
- Log.Warn("Reference Assembly can not be loaded. {0}", refName.FullName);
- }
- }
- }
+ // TODO: AppDomain is comming back in NETStandard2.0. This logic should be changed at that time.
+ TizenPlatformServices.AppDomain.CurrentDomain.RegisterAssemblyRecursively(application.GetType().GetTypeInfo().Assembly);
Device.PlatformServices = new TizenPlatformServices(); ;
if (Device.info != null)
_assemblies = new List<Assembly>();
// Add this renderer assembly to the list
- RegisterAssembly(GetType().GetTypeInfo().Assembly);
+ _assemblies.Add(GetType().GetTypeInfo().Assembly);
}
- internal void RegisterAssembly(Assembly asm)
+ internal void RegisterAssemblyRecursively(Assembly asm)
{
- if (!_assemblies.Contains(asm))
+ if (_assemblies.Contains(asm))
+ return;
+
+ _assemblies.Add(asm);
+
+ foreach (var refName in asm.GetReferencedAssemblies())
{
- _assemblies.Add(asm);
+ if (!refName.Name.StartsWith("System.") && !refName.Name.StartsWith("Microsoft.") && !refName.Name.StartsWith("mscorlib"))
+ {
+ try
+ {
+ Assembly refAsm = Assembly.Load(refName);
+ RegisterAssemblyRecursively(refAsm);
+ }
+ catch
+ {
+ Log.Warn("Reference Assembly can not be loaded. {0}", refName.FullName);
+ }
+ }
}
}