Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
 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;
     }
 }
Exemple #4
0
        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();
        }