Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Services/Web/Services
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv10172
Modified Files:
WebServiceProxyFactory.cs
Log Message:
Fix in WebServiceProxyFactory to support XmlRootAttribute.
Index: WebServiceProxyFactory.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Services/Web/Services/WebServiceProxyFactory.cs,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** WebServiceProxyFactory.cs 7 Sep 2007 01:03:30 -0000 1.25
--- WebServiceProxyFactory.cs 13 Nov 2007 03:17:49 -0000 1.26
***************
*** 574,578 ****
{
XmlMemberMapping outMemberMapping = outputMembersMapping[0];
! if (outMemberMapping.MemberName != operation.Name + "Result")
{
ParameterBuilder parameterBuilder = methodBuilder.DefineParameter(0, ParameterAttributes.Retval, null);
--- 574,580 ----
{
XmlMemberMapping outMemberMapping = outputMembersMapping[0];
! bool useMemberName = (outMemberMapping.MemberName != operation.Name + "Result");
! bool useNamespace = outMemberMapping.Namespace != outputMembersMapping.Namespace;
! if (useMemberName || useNamespace)
{
ParameterBuilder parameterBuilder = methodBuilder.DefineParameter(0, ParameterAttributes.Retval, null);
***************
*** 580,584 ****
CustomAttributeBuilderBuilder cabb =
new CustomAttributeBuilderBuilder(typeof(XmlElementAttribute));
! cabb.AddPropertyValue("ElementName", outMemberMapping.MemberName);
parameterBuilder.SetCustomAttribute(cabb.Build());
--- 582,593 ----
CustomAttributeBuilderBuilder cabb =
new CustomAttributeBuilderBuilder(typeof(XmlElementAttribute));
! if (useMemberName)
! {
! cabb.AddPropertyValue("ElementName", outMemberMapping.MemberName);
! }
! if (useNamespace)
! {
! cabb.AddPropertyValue("Namespace", outMemberMapping.Namespace);
! }
parameterBuilder.SetCustomAttribute(cabb.Build());
***************
*** 589,592 ****
--- 598,622 ----
}
#endif
+ /*
+ protected override void ApplyMethodParameterAttributes(MethodBuilder methodBuilder, MethodInfo targetMethod)
+ {
+ base.ApplyMethodParameterAttributes(methodBuilder, targetMethod);
+
+ foreach (ParameterInfo paramInfo in targetMethod.GetParameters())
+ {
+ XmlMemberMapping inMemberMapping = inputMembersMapping[paramInfo.Position];
+ if (inMemberMapping.Namespace != inputMembersMapping.Namespace)
+ {
+ ParameterBuilder parameterBuilder = methodBuilder.DefineParameter((paramInfo.Position + 1), paramInfo.Attributes, paramInfo.Name);
+
+ CustomAttributeBuilderBuilder cabb =
+ new CustomAttributeBuilderBuilder(typeof(XmlElementAttribute));
+ cabb.AddPropertyValue("Namespace", inMemberMapping.Namespace);
+
+ parameterBuilder.SetCustomAttribute(cabb.Build());
+ }
+ }
+ }
+ */
protected override IList GetTypeAttributes(Type type)
|