private void RegisterAllAssemblies(IReadOnlyCollection <Assembly> assemblies) { Assembly ResolveDependentAssembly(object sender, ResolveEventArgs args) { var requiredAssemblyName = new AssemblyName(args.Name); foreach (Assembly asm in assemblies) { if (IsAssemblyCompatible(requiredAssemblyName, asm.GetName())) { return(asm); } } _log.Warn($"Could find dependent assembly! Requesting assembly: {args.RequestingAssembly}, dependent assembly: {requiredAssemblyName}"); return(null); } try { AppDomain.CurrentDomain.AssemblyResolve += ResolveDependentAssembly; foreach (Assembly asm in assemblies) { TorchBase.RegisterAuxAssembly(asm); } } finally { AppDomain.CurrentDomain.AssemblyResolve -= ResolveDependentAssembly; } }
private void RegisterAllAssemblies(IReadOnlyCollection <Assembly> assemblies) { Assembly ResolveDependentAssembly(object sender, ResolveEventArgs args) { var requiredAssemblyName = new AssemblyName(args.Name); foreach (Assembly asm in assemblies) { if (IsAssemblyCompatible(requiredAssemblyName, asm.GetName())) { return(asm); } } if (requiredAssemblyName.Name.EndsWith(".resources", StringComparison.OrdinalIgnoreCase)) { return(null); } foreach (var asm in assemblies) { if (asm == args.RequestingAssembly) { _log.Warn($"Couldn't find dependency! {args.RequestingAssembly} depends on {requiredAssemblyName}."); break; } } return(null); } AppDomain.CurrentDomain.AssemblyResolve += ResolveDependentAssembly; foreach (Assembly asm in assemblies) { TorchBase.RegisterAuxAssembly(asm); } }
public void BindServer(ITorchServer server) { _server = (TorchBase)server; _multiplayer = (MultiplayerManager)server.Multiplayer; ChatItems.Items.Clear(); DataContext = _multiplayer; if (_multiplayer.ChatHistory is INotifyCollectionChanged ncc) { ncc.CollectionChanged += ChatHistory_CollectionChanged; } }
public void BindServer(ITorchServer server) { _server = (TorchBase)server; _multiplayer = (MultiplayerManager)server.Multiplayer; DataContext = _multiplayer; ChatItems.Inlines.Clear(); _multiplayer.ChatHistory.ForEach(InsertMessage); if (_multiplayer.ChatHistory is INotifyCollectionChanged ncc) { ncc.CollectionChanged += ChatHistory_CollectionChanged; } ChatScroller.ScrollToBottom(); }