При десериализации ограничения система должна найти использованные в ограничении типы. Для поиска типов используется набор системных сборок, а также текущая исполняемая сборка. Если в ограничении есть класс, например, наследуемый от external-класса, то при десериализации может произойти ошибка, поскольку система не сможет найти тип, указанный в ограничении. Для решения данной проблемы можно указывать в config-файлы сборки, в которых могут присутствовать типы, используемые в ограничении.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
	<!-- ... -->
    <section name="WebLimitSerializer" type="IIS.ExpressionSerialization.Configuration.WebLimitSerializer, IIS.ExpressionSerialization" />
	<!-- ... -->
  </configSections>
  <!-- ... -->
  <WebLimitSerializer>
    <searchedAssemblies>
      <add assembly="ПолноеИмяСборки" />
    </searchedAssemblies>
  </WebLimitSerializer>
  <!-- ... -->
</configuration>

Пример

Пусть есть класс MyClass, расположенный в сборке StageWithBaseClassProduct(Objects), который является external-классом для класса SonClass, расположенного в сборке StageWithExternalClassProduct(Objects). При задании ограничения в приложении StageWithExternalClassProduct на класс SonClass без указания дополнительных настроек произойдёт ошибка, поскольку системе не удастся найти базовый класс MyClass в известных ей сборках.

Для того, чтобы ошибки не было, необходимо в файле web-config указать следующее: зарегистрировать секцию

<configSections>
    <section name="WebLimitSerializer" type="IIS.ExpressionSerialization.Configuration.WebLimitSerializer, IIS.ExpressionSerialization" />
</configSections>

и указать, в каких сборках могут находиться external-классы

<WebLimitSerializer>
	<searchedAssemblies>
		<add assembly="StageWithBaseClassProduct(Objects), Version=1.0.0.1, Culture=neutral, PublicKeyToken=null" />
	</searchedAssemblies>
</WebLimitSerializer>