2009-02-28 78 views
1

在VB.NET中,我正在尝试与web服务(无法更改)进行交谈来创建和更新客户数据。 CreateCustomer服务需要一个ConsumerPerson类型的对象,而ChangeCustomer服务需要一个类型为ChangeData的对象。我如何将两种相似类型视为一种?

这两个对象的属性完全相同,所以我认为只用一个函数设置属性是明智的。

但是,我无法找到一种方法来告诉我的函数,我想要填充ConsumerPerson或ChangeCustomer对象。

如何使这项工作没有迟到的约束问题?

回答

1

一个界面听起来像是您最好的方法。这是一个简短的代码片段。我选择了一个名称为“Name”的字符串类型的简单属性。应该很容易使用班级上的实际属性进行修改。

Public Interface ICustomerData 
    ReadOnly Property Name As String 
End Interface 

Public Class ConsumerPerson 
    Implements ICustomerData 

    Public ReadOnly Property Name As String Implements ICustomerData.Name 
    Get 
     return _name 
    End Get 
    End Property 
End Class 

Public Class ChangeData 
    Implements ICustomerData 

    Public ReadOnly Property Name As String Implements ICustomerData.Name 
    Get 
     return _name 
    End Get 
    End Property 
End Class 
+0

理论上听起来不错。但看着代码,我意识到我遗漏了一些关键细节:我也无法更改ConsumerPerson或ChangeData类。 – sebastiaan 2009-02-28 16:16:40

1

使用接口!

声明一个接口IFoo,并在您的子类ConsumerPerson和ChangeCustomer中实现其成员。这正是接口的用途。

1

您可以创建两个类都实现的接口。

0

是否有可能超载你的函数与第二种数据类型?

0

如果您不能更改您的对象,但它们共享相同的字段名称,则可以将xml序列化为数据并反序列化为其他类。 - 你应该强烈考虑这个性能影响;然而,它会给你你要求的功能。

相关问题