Вызов метода SmartObjects в C#
Я создал SmartObject в конструкторе K2 и добавил URL WCF в качестве ссылки на сервис.
Ниже приведен код
UserDetailsSvcClient userDetail = new UserDetailsSvcClient();
userDetail.Open();
UserDetails userDC = new UserDetails();
var userDetailsList = userDetail.UserDetailsSvc_Load(userDC);
userDetail.Close();
Но userDetailsList
всегда остается как null
,
Так же GetList
Умный метод не появляется
2 ответа
Я предполагаю, что вы включили конечные точки на сервере K2. Если нет, обратитесь к следующему, Ссылка на создание конечной точки PS: Вам необходимо перезапустить K2 Server, чтобы изменения вступили в силу.
Из кодов, кажется, вы пытаетесь сделать метод Load. Метод загрузки потребует идентификатор.
Поэтому для UserDetails userDC = new UserDetails(); добавьте следующее:
userDC.Id = 1;
Что касается GetList, вам не нужно передавать его объекту UserDetails.
var userDetailsList = userDetail.UserDetailsSvc_GetList(Null);
Проблема была в том, что я не авторизовал клиента. Мне нужно было добавить
userDetail.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
ТАК наконец, код выглядел так
UserDetailsSvcClient userDetail = new UserDetailsSvcClient();
userDetail.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
userDetail.Open();
UserDetails userDC = new UserDetails();
var userDetailsList = userDetail.UserDetailsSvc_Load(userDC);
userDetail.Close();