Skip to content

Commit eb09e03

Browse files
authored
dotnet-svcutil fix: MessageEncoding config was ignored in BasicHttpBinding code generation. (#5104)
1 parent 224053a commit eb09e03

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/dotnet-svcutil/lib/src/CodeDomFixup/MethodCreationHelper.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1721,6 +1721,18 @@ private static void AddBasicHttpBindingConfiguration(CodeStatementCollection sta
17211721

17221722
MaxOutProperties(statements, resultVar);
17231723

1724+
if (defaultBinding.MessageEncoding != basicHttp.MessageEncoding)
1725+
{
1726+
statements.Add(
1727+
new CodeAssignStatement(
1728+
new CodePropertyReferenceExpression(
1729+
resultVar,
1730+
"MessageEncoding"),
1731+
new CodePropertyReferenceExpression(
1732+
new CodeTypeReferenceExpression(typeof(WSMessageEncoding)),
1733+
basicHttp.MessageEncoding.ToString())));
1734+
}
1735+
17241736
// Set AllowCookies's default value to true.
17251737
statements.Add(
17261738
new CodeAssignStatement(

src/dotnet-svcutil/lib/src/FrameworkFork/System.ServiceModel/System/ServiceModel/BasicHttpBinding.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,12 @@ public override BindingElementCollection CreateBindingElements()
126126
bindingElements.Add(wsSecurity);
127127
}
128128
// add encoding
129-
if (MessageEncoding == WSMessageEncoding.Text)
130-
bindingElements.Add(TextMessageEncodingBindingElement);
129+
WSMessageEncodingHelper.SyncUpEncodingBindingElementProperties(this.TextMessageEncodingBindingElement, this.MtomMessageEncodingBindingElement);
130+
if (this.MessageEncoding == WSMessageEncoding.Text)
131+
bindingElements.Add(this.TextMessageEncodingBindingElement);
132+
else if (this.MessageEncoding == WSMessageEncoding.Mtom)
133+
bindingElements.Add(this.MtomMessageEncodingBindingElement);
134+
131135
// add transport (http or https)
132136
bindingElements.Add(GetTransport());
133137

0 commit comments

Comments
 (0)