Problemas no serviço de idiomas
Eu encontrei duas maneiras de oferecer um serviço de idiomas na internet.
A primeira maneira envolve o uso de umIOleComponentManager
e registrando um cronômetro para ligar para meu serviço durante os períodos de inatividade.
O segundo caminho envolve revestir meu serviço como umIServiceContainer
e adicionando umServiceCreatorCallback
para "oferecer o serviço sob demanda".
Supostamente, a segunda maneira agora é a "maneira preferida" de fazer as coisas. Infelizmente, quando eu uso esse método,OnSynchronizeDropdowns
nunca é chamado no meuTypeAndMembersDropdownBars
implementação.
Além disso, quando meuLanguageService
encontra erros no arquivo, ele usaParseRequest.Sink.AddError()
para adicionar erros à lista de erros. Ao oferecer "On Demand", esses erros não aparecem na GUI, mesmo quando os vejo sendo adicionados quando depuro o código.
Sei que meu serviço de idiomas está sendo registrado, porque o realce da sintaxe "Ir para definição" e "Localizar todas as referências" ainda funcionam.
Aqui está o código que estou usando para "oferecer meu serviço sob demanda":
IServiceContainer serviceContainer = this as IServiceContainer;
ServiceCreatorCallback callback = new ServiceCreatorCallback(CreateLanguageService);
serviceContainer.AddService(typeof(MyLanguageService), callback, true);
Alguém pode me dizer por que algumas funcionalidades do meuLanguageService
não funciona ao oferecê-lo sob demanda? Estou faltando alguma coisa ou não é assim que se destina a um serviço de idiomas totalmente funcional?