VB 函数调用中参数的正确语法

Posted

技术标签:

【中文标题】VB 函数调用中参数的正确语法【英文标题】:Proper syntax for parameters in VB function call 【发布时间】:2015-11-30 04:10:06 【问题描述】:

我过去在 VB.net 中开发过,但我根本不知道如何正确调用此函数以及如何获取响应,以便将其显示在网页响应中。

我将示例 c# 代码翻译成 VB。这是我希望用来发出请求然后在我的页面中显示响应的 aspx 页面背后的代码:

Imports OffAmazonPaymentsService
Imports OffAmazonPaymentsService.Model

Public Class WebForm1
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Write(GetOrderReferenceDetails(???service???, "asdfsadf", "asdfsadf", "asdfasdf"))

    End Sub
    Private Shared Function GetOrderReferenceDetails(service As IOffAmazonPaymentsService, sellerId As String, amazonOrderReferenceId As String, addressConsentToken As String) As GetOrderReferenceDetailsResponse
        ' Required parameters
        Dim request As New GetOrderReferenceDetailsRequest()
        request.SellerId = sellerId
        request.AmazonOrderReferenceId = amazonOrderReferenceId

        ' Optional parameters
        request.AddressConsentToken = addressConsentToken

        Return service.GetOrderReferenceDetails(request)
    End Function
End Class

我不知道如何调用该函数的第一个(服务)参数,然后显示响应的内容。

如果我的问题不够清楚,请告诉我。 这是他们以升c格式给出的示例....

using OffAmazonPaymentsService;
using OffAmazonPaymentsService.Model;

public class GetOrderReferenceDetailsSample

    /**
     * Sample GetOrderReferenceDetails method that takes generic inputs, constructs a request object,
     * and make a call to the service.
     */
    private static GetOrderReferenceDetailsResponse GetOrderReferenceDetails(
        IOffAmazonPaymentsService service,
        string sellerId,
        string amazonOrderReferenceId,
        string addressConsentToken)
    
        // Required parameters
        GetOrderReferenceDetailsRequest request = new GetOrderReferenceDetailsRequest();
        request.SellerId = sellerId;
        request.AmazonOrderReferenceId = amazonOrderReferenceId;

        // Optional parameters
        request.AddressConsentToken = addressConsentToken;

        return service.GetOrderReferenceDetails(request);
    

【问题讨论】:

你需要传递一个实现IOffAmazonPaymentsService的类型的对象;你的项目中包含这样的类吗? @TiesonT。 -谢谢.. 是的,我在我的项目中添加了 OffAmazonPaymentsService DLL 作为参考,并且这些参考正在被识别。我认为您对对象调用的看法是正确的。我只是想不出正确的格式或语法来正确地进行调用。 要明确..这是???服务???部分我不知道如何格式化或使用...我知道如何传递函数的其他参数..我以前在 vb.net 中使用/构建过功能..但服务参数让我感到困惑。跨度> 服务不太可能是静态/共享的,因此您需要新建一个实例,然后将其传入。您使用的是 AWS 开发工具包吗? 假设您使用的是 AWS 开发工具包,sample console app 显示了如何实例化服务类的实例。 【参考方案1】:

免责声明:我的 VB 已“生锈”,因此请根据需要进行调试和改进

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

        Dim props As OffAmazonPaymentsServicePropertyCollection = OffAmazonPaymentsServicePropertyCollection.getInstance()
        Dim client As New OffAmazonPaymentsServiceClient(props)
        Dim result as GetOrderReferenceDetailsResponse = GetAmzOrderRef(client, props, "oref", "token")

End Sub


Private Shared Function GetAmzOrderRef(service As IOffAmazonPaymentsService, props As OffAmazonPaymentsServicePropertyCollection, amazonOrderReferenceId As String, addressConsentToken As String) As GetOrderReferenceDetailsResponse

        Dim request as New GetOrderReferenceDetailsRequest()
        With request
            .SellerId = props.MerchantID
            .AmazonOrderReferenceId = amazonOrderReferenceId
            .AddressConsentToken = addressConsentToken
        End With
        Return service.GetOrderReferenceDetails(request)

End Function

注意事项:

你应该有你的config values set(web.configapp.config 是必要的),这是OffAmazonPaymentsServicePropertyCollection.getInstance() 将获取值的地方

由于参考 id 和令牌的虚拟值,上述示例代码将失败(如预期的那样),但“错误”来自 Amazon API(已经) - 例如响应错误“invalid reference id”或“invalid token”等......

第……

【讨论】:

以上是关于VB 函数调用中参数的正确语法的主要内容,如果未能解决你的问题,请参考以下文章

VB中shell函数有哪些?举些例子。

vb的函数调用

VB中的shell函数是干啥的?怎么用啊?

function()函数的具体用法

vb中 Randomize 啥意思

从VB.NET Web表单调用我的第一个WCF服务中的函数会引发错误。函数调用缺少WCF函数中的参数