Цитата:
Сообщение от
Yprit
Спасибо за ссылку!
Вставил пермишны:
X++:
//проверяем возможность доступа к сборке
perm = new InteropPermission(InteropKind::ClrInterop);
if (perm == null)
{
return;
}
perm.assert();
После чего cборка начала работать в режиме "Server"
Однако обнаружил следующее некорректное поведение компонента ClrInterOp
Метод ClrInterop::isNull в режиме
"Server" выдаёт стабильно
true! Хотя, как видно из кода ниже, строка strOuterXml ВСЕГДА имеет осмысленные данные (
ID="{BB80822A-7849-416B-9BF4-ECD83999F867}).
В режиме
"Client" метод ClrInterop::isNull работает нормально, и выдаёт true или false в зависимости от реального сотояния объекта.
X++:
System.Xml.XmlAttributeCollection xacAttributes;
System.Xml.XmlAttribute xaAttribute;
str strOuterXml;
anytype ant;
;
xacAttributes = ndListDefinition.get_Attributes();
xaAttribute = xacAttributes.get_ItemOf("ID");
strOuterXml = ClrInterOp::getAnyTypeForObject(xaAttribute.get_OuterXml());
ant = ClrInterop::isNull(xaAttribute);
if(!ClrInterop::isNull(xaAttribute))
{
_listID = xaAttribute.get_Value();
}
else
{
_listID = "-1";
}