Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Web/Services
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv17117
Modified Files:
WebServiceExporter.cs
Log Message:
Refactored Stan D. contribution [SPRNET-606]
Index: WebServiceExporter.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Web/Web/Services/WebServiceExporter.cs,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** WebServiceExporter.cs 9 Nov 2007 15:42:48 -0000 1.26
--- WebServiceExporter.cs 3 Dec 2007 09:07:43 -0000 1.27
***************
*** 33,38 ****
using Spring.Objects;
using Spring.Objects.Factory;
- using Spring.Proxy;
using Spring.Util;
#endregion
--- 33,38 ----
using Spring.Objects;
using Spring.Objects.Factory;
using Spring.Util;
+ using Spring.Proxy;
#endregion
***************
*** 314,318 ****
private void GenerateProxy()
{
! IProxyTypeBuilder builder = new WebServiceProxyTypeBuilder(TargetName, CreateWebServiceAttribute());
builder.Name = this.objectName;
builder.TargetType = objectFactory.GetType(TargetName);
--- 314,318 ----
private void GenerateProxy()
{
! IProxyTypeBuilder builder = new WebServiceProxyTypeBuilder(TargetName, Description, Name, Namespace);
builder.Name = this.objectName;
builder.TargetType = objectFactory.GetType(TargetName);
***************
*** 327,340 ****
}
- private WebServiceAttribute CreateWebServiceAttribute()
- {
- WebServiceAttribute wsa = new WebServiceAttribute();
- wsa.Description = Description;
- wsa.Name = Name;
- wsa.Namespace = Namespace;
-
- return wsa;
- }
-
#endregion
--- 327,330 ----
***************
*** 352,356 ****
private string targetName;
! private WebServiceAttribute webServiceAttribute;
#endregion
--- 342,346 ----
private string targetName;
! private CustomAttributeBuilder webServiceAttribute;
#endregion
***************
*** 358,370 ****
#region Constructor(s) / Destructor
! public WebServiceProxyTypeBuilder(string targetName,
! WebServiceAttribute webServiceAttribute)
{
this.targetName = targetName;
- this.webServiceAttribute = webServiceAttribute;
BaseType = typeof(WebService);
}
#endregion
--- 348,382 ----
#region Constructor(s) / Destructor
! public WebServiceProxyTypeBuilder(
! string targetName, string description, string name, string ns)
{
this.targetName = targetName;
+ // Creates a WebServiceAttribute from configuration info
+ this.webServiceAttribute = CreateWebServiceAttribute(description, name, ns);
+
+ // Optional
BaseType = typeof(WebService);
}
+ private static CustomAttributeBuilder CreateWebServiceAttribute(string description, string name, string ns)
+ {
+ ReflectionUtils.CustomAttributeBuilderBuilder cabb =
+ new ReflectionUtils.CustomAttributeBuilderBuilder(typeof(WebServiceAttribute));
+ if (StringUtils.HasText(description))
+ {
+ cabb.AddPropertyValue("Description", description);
+ }
+ if (StringUtils.HasText(name))
+ {
+ cabb.AddPropertyValue("Name", name);
+ }
+ if (StringUtils.HasText(ns))
+ {
+ cabb.AddPropertyValue("Namespace", ns);
+ }
+ return cabb.Build();
+ }
+
#endregion
***************
*** 409,421 ****
for (int i = 0; i < attrs.Count; i++)
{
! ExtendedAttributeBuilder attrBuilder =
! attrs[i] as ExtendedAttributeBuilder;
! if ((attrBuilder != null) &&
! attrBuilder.AttributeType == typeof(WebServiceAttribute))
! {
! attrs[i] = webServiceAttribute;
! return attrs;
! }
! if (attrs[i] is WebServiceAttribute)
{
// override existing WebServiceAttribute
--- 421,425 ----
for (int i = 0; i < attrs.Count; i++)
{
! if (IsAttributeMatchingType(attrs[i], typeof(WebServiceAttribute)))
{
// override existing WebServiceAttribute
***************
*** 427,431 ****
// add missing WebServiceAttribute
! attrs.Add(ReflectionUtils.CreateCustomAttribute(webServiceAttribute));
return attrs;
--- 431,435 ----
// add missing WebServiceAttribute
! attrs.Add(webServiceAttribute);
return attrs;
***************
*** 437,451 ****
bool containsWebMethodAttribute = false;
! for (int i = 0; i < attrs.Count; i++)
{
! ExtendedAttributeBuilder attrBuilder =
! attrs[i] as ExtendedAttributeBuilder;
! if ((attrBuilder != null) &&
! attrBuilder.AttributeType == typeof(WebMethodAttribute))
! {
! containsWebMethodAttribute = true;
! break;
! }
! if (attrs[i] is WebMethodAttribute)
{
containsWebMethodAttribute = true;
--- 441,447 ----
bool containsWebMethodAttribute = false;
! foreach (object attr in attrs)
{
! if (IsAttributeMatchingType(attr, typeof(WebMethodAttribute)))
{
containsWebMethodAttribute = true;
|