Вызов метода 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();
Другие вопросы по тегам