для передачи точки с запятой в CustomActionData необходимо добавить еще одну точку с запятой.
Пример:
CustomActionData = "key1 = value1; key2 = value2.1;; value2.2 ;; value2.3 "- это передаст key1 = value1 и key2 = value2.1; value2.2; value2.3
Если вы не знаете, где находятся точки с запятой, то я думаю,Вы можете создать метод, который избегает их, заменив каждую точку с запятой двумя точками с запятой.
Если есть еще символы, которые вы не знаете, как избежать, вы легко узнаете, создав простое приложение, которое создает экземпляр CustomActionData, добавляетпара ключ-значение и выводит строковое представление CustomActionData с помощью ToString ().
Пример:
CustomActionData data = new CustomActionData();
data.Add("key1", "value1");
data.Add("key2", "value2.1;value2.2;value2.3");
Console.WriteLine(data.ToString());
Надеюсь, эта информация полезна.