服务宿主用户状态

服务宿主使应用程序能够关联服务主机级别范围内的状态数据。 此状态是在应用程序创建服务宿主时由传递给 WsCreateServiceHost 函数的 WS_SERVICE_PROPERTY 结构指定的,如下例所示。

void* quotePtr = (void*) quotes;
WS_SERVICE_PROPERTY serviceProperties[1] = {0};
serviceProperties[0].id = WS_SERVICE_PROPERTY_HOST_USER_STATE;
serviceProperties[0].value = &quotePtr; // assume this is some state that you want to associate with the service host
serviceProperties[0].valueSize = sizeof(quotePtr);

状态数据可用于所有服务宿主回调和服务操作。 回调和服务操作通过调用 WsGetOperationContextProperty 函数并指定由 WS_OPERATION_CONTEXT 结构引用的上下文以及上下文属性(WS_OPERATION_CONTEXT_PROPERTY_HOST_USER_STATE 枚举的某个值)来检索信息,如下例所示。

QuoteTable* table = NULL;
HRESULT hr = NOERROR;
if (FAILED (WsGetOperationContextProperty (context, WS_OPERATION_CONTEXT_PROPERTY_HOST_USER_STATE, &table, sizeof(table), NULL, error)))
    return hr;