diff --git a/packages/http-client-csharp/emitter/src/lib/operation.ts b/packages/http-client-csharp/emitter/src/lib/operation.ts index 37ad8229bd..07ccc19ba6 100644 --- a/packages/http-client-csharp/emitter/src/lib/operation.ts +++ b/packages/http-client-csharp/emitter/src/lib/operation.ts @@ -14,6 +14,7 @@ import { ModelProperty, Namespace, Operation, + Type, getDeprecated, getDoc, getSummary, @@ -78,9 +79,9 @@ export function loadOperation( parameters.push(loadOperationParameter(sdkContext, p)); } - if (typespecParameters.body?.parameter) { + if (typespecParameters.body?.parameter && !isVoidType(typespecParameters.body.type)) { parameters.push(loadBodyParameter(sdkContext, typespecParameters.body?.parameter)); - } else if (typespecParameters.body?.type) { + } else if (typespecParameters.body?.type && !isVoidType(typespecParameters.body.type)) { const effectiveBodyType = getEffectiveSchemaType(sdkContext, typespecParameters.body.type); if (effectiveBodyType.kind === "Model") { const bodyParameter = loadBodyParameter(sdkContext, effectiveBodyType); @@ -199,6 +200,10 @@ export function loadOperation( GenerateConvenienceMethod: generateConvenience, } as InputOperation; + function isVoidType(type: Type): boolean { + return type.kind === "Intrinsic" && type.name === "void"; + } + function loadOperationParameter( context: SdkContext, parameter: HttpOperationParameter