Hello!
After upgrading Trados Studio from version 17.0.3.11695 to 17.2.8.18668 we have a problem with Sdl.LanguagePlatform.TranslationMemoryApi.TranslationProviderManager.GetTranslationProviderFactories() method.
When calling it we get this error:
System.MissingMethodException: No parameterless constructor defined for this object.
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
at Sdl.Core.PluginFramework.DefaultObjectResolver.CreateObject(Type objectType, XElement attributeElement)
at Sdl.Desktop.Platform.Implementation.ObjectResolverComposer.CreateObject(Type objectType, XElement attributeElement)
at Sdl.Core.PluginFramework.Implementation.Extension.CreateInstance()
at Sdl.Core.PluginFramework.ObjectRegistry`2.CreateObjects()
at Sdl.LanguagePlatform.TranslationMemoryApi.TranslationProviderManager.GetTranslationProviderFactories()
We've discovered that the problem is caused by this file located in PlugIns directory:
Sdl.BestMatchService.TranslationProvider.plugin.xml
Very simple console app like this is enough to induce the error:
using Sdl.LanguagePlatform.TranslationMemoryApi;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
TranslationProviderManager.GetTranslationProviderFactories();
}
}
}
A workaround to this problem is to delete first two <extension>...</extension> sections from Sdl.BestMatchService.TranslationProvider.plugin.xml.
Uprading to 17.2.10.19084 doesn't help.
Is there more proper solution to this problem?
Cheers,
Wojtek