Error when setting value in import task settings

Good day,

In our plugin with Studio 2024, we are trying to run the automatic task “UpdateFromExternalReview” via the Studio API. However, when preparing the task settings, we receive an error. See the following code snippet:

ISettingsBundle settings = project.GetSettings();
Sdl.ProjectApi.Settings.ImportFromReviewTaskSettings importTaskSettings = settings.GetSettingsGroup<Sdl.ProjectApi.Settings.ImportFromReviewTaskSettings>();
importTaskSettings.ExternalReviewMappingItems.Value = reviewedItems;

When setting this value, we receive the following error:

No set method for property 'IsoAbbreviation' in type 'Sdl.Core.Globalization.LanguageBase'. ---> System.Runtime.Serialization.InvalidDataContractException: No set method for property 'IsoAbbreviation' in type 'Sdl.Core.Globalization.LanguageBase'.
at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.ThrowInvalidDataContractException(String message, Type type)
at WriteLanguageToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract )
at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle)
at WriteExternalReviewMappingItemToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract )
at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle)
at WriteArrayOfExternalReviewMappingItemToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , CollectionDataContract )
at System.Runtime.Serialization.CollectionDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)
at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)
at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)
at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)
at System.Runtime.Serialization.DataContractSerializer.WriteObject(XmlWriter writer, Object graph)

This error is mysterious to us, as there's no obvious connection to what we're trying to do.

The error occurred both in versions 18.0.1.2259 and 18.1.2.6370.

Any help would be greatly appreciated.

Best regards,
Bram van der Steen

Parents
  • Hey  , this might be related to the binding redirects again.  Can you tell me me the binding redirects you have configured in yr App.config file from your standalone project automation project?

    here the latest one I'm using here for my testing.  Can you update yours with these binding redirects and let me know if this resolves the issue?  

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
      </configSections>
      <BestMatchServiceUrlsConfig GlobalApi="https://api.cloud.trados.com" auth0="https://sdl-prod.eu.auth0.com">
        <LanguageConfig>
          <Lang Code="en" />
          <Lang Code="de" />
          <Lang Code="fr" />
          <Lang Code="es" />
          <Lang Code="ja" />
          <Lang Code="it" />
          <Lang Code="zh-CN" />
        </LanguageConfig>
        <HavingTroubleSigningIn url="https://gateway.sdl.com/apex/communityknowledge?articleName=000001399" />
      </BestMatchServiceUrlsConfig>  
      <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
      </startup>
      <runtime>
        <NetFx40_PInvokeStackResilience enabled="1" />
        <legacyCorruptedStateExceptionsPolicy enabled="true" />
        <ThrowUnobservedTaskException enabled="true" />
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.Extensions.DependencyModel" publicKeyToken="adb9793829ddae60" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
          </dependentAssembly>
          <dependentAssembly>
            <Paket>True</Paket>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="13.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-8.0.0.5" newVersion="8.0.0.5" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      
      <log4net>
        <!-- Set levels to DEBUG for extended logging information -->
        <appender name="RollingFile" type="Sdl.Desktop.Logger.LocalUserAppDataFileAppender, Sdl.Desktop.Logger">
        </appender>
        <!-- output to debug string -->
        <appender name="OutputDebug" type="log4net.Appender.OutputDebugStringAppender">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
          </layout>
        </appender>
        <root>
          <level value="INFO" />
          <appender-ref ref="RollingFile" />
          <appender-ref ref="OutputDebug" />
        </root>
        <logger name="Sdl.TranslationStudio">
          <level value="INFO" />
        </logger>
        <logger name="Sdl.Desktop">
          <level value="INFO" />
        </logger>
        <logger name="Sdl.ProjectApi">
          <level value="INFO" />
        </logger>
        <logger name="Licensing">
          <level value="INFO" />
        </logger>
        <!--<logger name="Sdl.MultiTerm">
          <level value="DEBUG"/>
        </logger>-->
      </log4net> 
    </configuration>

    Patrick Andrew Hartnett | Developer Experience | Team Lead | RWS Group

Reply
  • Hey  , this might be related to the binding redirects again.  Can you tell me me the binding redirects you have configured in yr App.config file from your standalone project automation project?

    here the latest one I'm using here for my testing.  Can you update yours with these binding redirects and let me know if this resolves the issue?  

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
      </configSections>
      <BestMatchServiceUrlsConfig GlobalApi="https://api.cloud.trados.com" auth0="https://sdl-prod.eu.auth0.com">
        <LanguageConfig>
          <Lang Code="en" />
          <Lang Code="de" />
          <Lang Code="fr" />
          <Lang Code="es" />
          <Lang Code="ja" />
          <Lang Code="it" />
          <Lang Code="zh-CN" />
        </LanguageConfig>
        <HavingTroubleSigningIn url="https://gateway.sdl.com/apex/communityknowledge?articleName=000001399" />
      </BestMatchServiceUrlsConfig>  
      <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
      </startup>
      <runtime>
        <NetFx40_PInvokeStackResilience enabled="1" />
        <legacyCorruptedStateExceptionsPolicy enabled="true" />
        <ThrowUnobservedTaskException enabled="true" />
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.Extensions.DependencyModel" publicKeyToken="adb9793829ddae60" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
          </dependentAssembly>
          <dependentAssembly>
            <Paket>True</Paket>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="13.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-8.0.0.5" newVersion="8.0.0.5" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      
      <log4net>
        <!-- Set levels to DEBUG for extended logging information -->
        <appender name="RollingFile" type="Sdl.Desktop.Logger.LocalUserAppDataFileAppender, Sdl.Desktop.Logger">
        </appender>
        <!-- output to debug string -->
        <appender name="OutputDebug" type="log4net.Appender.OutputDebugStringAppender">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
          </layout>
        </appender>
        <root>
          <level value="INFO" />
          <appender-ref ref="RollingFile" />
          <appender-ref ref="OutputDebug" />
        </root>
        <logger name="Sdl.TranslationStudio">
          <level value="INFO" />
        </logger>
        <logger name="Sdl.Desktop">
          <level value="INFO" />
        </logger>
        <logger name="Sdl.ProjectApi">
          <level value="INFO" />
        </logger>
        <logger name="Licensing">
          <level value="INFO" />
        </logger>
        <!--<logger name="Sdl.MultiTerm">
          <level value="DEBUG"/>
        </logger>-->
      </log4net> 
    </configuration>

    Patrick Andrew Hartnett | Developer Experience | Team Lead | RWS Group

Children
No Data