AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.01.2014, 15:00   #1  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Цитата:
Сообщение от Morpheus Посмотреть сообщение
X++:
System.Net.ICredentials iCredentials = new System.Net.ICredentials();
str iCredentialsXml;
System.Type type;

iCredentialsXml = DOCommonDataManager::serialize(iCredentials);

type = System.Type::GetType('System.Net.ICredentials, System', true);

iCredentials = DOCommonDataManager::deserialize(type, iCredentialsXml);
У меня нет класса.
X++:
DOCommonDataManager
Видимо он из AX 2012, а мне необходимо реализовать это в DAX 4.0

Последний раз редактировалось maldini; 16.01.2014 в 15:03.
Старый 16.01.2014, 16:56   #2  
Morpheus is offline
Morpheus
Участник
Аватар для Morpheus
Соотечественники
 
602 / 167 (7) ++++++
Регистрация: 30.03.2005
Адрес: Київ-København-Düsseldorf
Цитата:
Сообщение от maldini Посмотреть сообщение
У меня нет класса.
X++:
DOCommonDataManager
Видимо он из AX 2012, а мне необходимо реализовать это в DAX 4.0
Посмотрите/скопируйте реализацию этого класса в/из AX 2012
За это сообщение автора поблагодарили: maldini (1).
Старый 16.01.2014, 18:17   #3  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Цитата:
Сообщение от Morpheus Посмотреть сообщение
Посмотрите/скопируйте реализацию этого класса в/из AX 2012
Сериализация простого объекта получается
X++:
 type = System.Type::GetType('System.String');
 serializer = new System.Xml.Serialization.XmlSerializer(type);
А вот такой объект не работает

X++:
type = System.Type::GetType('System.Net.ICredentials');

serializer = new System.Xml.Serialization.XmlSerializer(type);
Данный объект не получится сеарилизовать, так как он хранит приватные поля, а приватные поля сеарилизации не подвергаются.

Всем спасибо. Затея была неудачной.


Скорее всего не все объекты возможно сериализовать.

Последний раз редактировалось maldini; 16.01.2014 в 18:48.
Старый 16.01.2014, 19:02   #4  
Morpheus is offline
Morpheus
Участник
Аватар для Morpheus
Соотечественники
 
602 / 167 (7) ++++++
Регистрация: 30.03.2005
Адрес: Київ-København-Düsseldorf
Цитата:
Сообщение от maldini Посмотреть сообщение
Данный объект не получится сеарилизовать, так как он хранит приватные поля, а приватные поля сеарилизации не подвергаются.
У вас проблема с сериализацией или десериализацией? Если второе, то обратите внимание все ли типы сериализованных объектов предоставлены для десериализации.

X++:
System.Type[] extraTypes = new System.Type[1]();

extraTypes.SetValue(System.Type::GetType('ExtraType, ExtraTypeDLL', true), 0);

DOCommonDataManager::deserialize(type, _objectXml, extraTypes);
Старый 16.01.2014, 22:08   #5  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Цитата:
Сообщение от Morpheus Посмотреть сообщение
У вас проблема с сериализацией или десериализацией? Если второе, то обратите внимание все ли типы сериализованных объектов предоставлены для десериализации.

X++:
System.Type[] extraTypes = new System.Type[1]();

extraTypes.SetValue(System.Type::GetType('ExtraType, ExtraTypeDLL', true), 0);

DOCommonDataManager::deserialize(type, _objectXml, extraTypes);
Проблема в инициализации объекта XmlSerializer
Старый 17.01.2014, 02:49   #6  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Это интерфейс, а не класс.
System.Net.ICredentials
http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx

У интерфейса всего 1 метод - GetCredential(). Возвращает " NetworkCredential object that is associated with the specified URI, and authentication type."

На сервере -

Получите NetworkCredential из метода System.Net.ICredentials.GetCredential().

http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx

Передайте на клиент параметры из NetworkCredential. Создайте NetworkCredential на клиенте используя эти параметры.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 17.01.2014, 10:10   #7  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Цитата:
Сообщение от Alex_KD Посмотреть сообщение
Это интерфейс, а не класс.
System.Net.ICredentials
http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx

У интерфейса всего 1 метод - GetCredential(). Возвращает " NetworkCredential object that is associated with the specified URI, and authentication type."

На сервере -

Получите NetworkCredential из метода System.Net.ICredentials.GetCredential().

http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx

Передайте на клиент параметры из NetworkCredential. Создайте NetworkCredential на клиенте используя эти параметры.
Честно говоря немного не так. Я объявляю переменную типа
Код:
System.Net.ICredentials   credentials
.
В данную переменную с помощью статического метода
Код:
System.Net.CredentialCache::get_DefaultCredentials();
получаю объект NetworkCredential. Но так как в этом объекте есть privet поля то я не могу сериализовать его. Получить все параметры для создания объекта на клиенте я так же не могу. Этот объект не сериализуемый по соображениям безопасности.

Последний раз редактировалось maldini; 17.01.2014 в 10:17.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
передача бинарных файлов с клиента на AOS и обратно corvax DAX: Программирование 9 01.04.2014 15:05
emeadaxsupport: CLRObject could not be created error when entering Tools/Options in Microsoft Dynamics AX 2012 Blog bot DAX Blogs 0 09.10.2012 17:11
axforum blogs: Подружить Аксапту и клиент-банк Blog bot DAX Blogs 0 14.01.2011 09:11
Передать данные с сервера на клиент при формировании Excel отчета Eldar9x DAX: Программирование 10 21.10.2008 15:39
Связь с клиент-банк SAN DAX: База знаний и проекты 32 08.10.2004 13:18
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:47.