Показать сообщение отдельно
Старый 30.09.2008, 12:26   #4  
GromRom is offline
GromRom
Участник
 
63 / 10 (1) +
Регистрация: 22.10.2007
Angry
Цитата:
Спасибо за ссылку!

Вставил пермишны:

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";
    }

Последний раз редактировалось GromRom; 30.09.2008 в 12:28.