小编dcp*_*dcp的帖子

如何使用XDocument调用Web服务?

假设我在以下地址有一个asmx Web服务: http://localhost/BudgetWeb/Service.asmx

此Web服务具有带以下签名的Web方法:

string GetValue(string key)
Run Code Online (Sandbox Code Playgroud)

此GetValue方法返回如下字符串:

<?xml version=\"1.0\" encoding=\"utf-8\" ?><value>250.00</value>
Run Code Online (Sandbox Code Playgroud)

如果我想这样做怎么办:

XDocument doc = XDocument.Load("http://localhost/BudgetWeb/Service.asmx?op=GetValue&key=key1")
Run Code Online (Sandbox Code Playgroud)

这不起作用,我很确定XDocument.Load实际上并没有在服务器上调用Web方法.我认为它希望uri指向一个可以加载的文件.要调用Web方法,我想我必须有一个Web代理类,并且必须使用它来调用string GetValue(string key),然后我可以使用从Web代理类返回的值传递给XDocument.Load方法.

我的理解是否正确,或者XDocument.Load是否有办法在服务器上实际调用Web方法?

c# asmx

3
推荐指数
1
解决办法
3906
查看次数

使用ASP.NET MVC的jquery - 调用启用了ajax的Web服务

这是前一个问题的一个延续.

现在我正在尝试调用我在ASP.NET MVC应用程序中定义的支持AJAX的Web服务(即MovieService.svc).但是我的getMoviesjavascript函数永远不会调用该服务.

如果我在非ASP.NET MVC应用程序中尝试,这种调用AJAX Web服务的技术工作正常,所以它让我想知道ASP MVC路由在尝试进行AJAX Web服务调用时是否会以某种方式干扰某些事情.

你知道为什么我的网络服务没有被调用吗?代码如下.

    <script src="<%= ResolveClientUrl("~/scripts/jquery-1.4.2.min.js") %>" type="text/javascript"></script>

    <script src="<%= ResolveClientUrl("~/scripts/grid.locale-en.js") %>" type="text/javascript"></script>

    <script src="<%= ResolveClientUrl("~/scripts/jquery-ui-1.8.1.custom.min.js") %>"
        type="text/javascript"></script>

    <script src="<%= ResolveClientUrl("~/scripts/jquery.jqGrid.min.js") %>" type="text/javascript"></script>

    <script type="text/javascript">
        var lastsel2;

        function successFunction(jsondata) {
            debugger
            var thegrid = jQuery("#editgrid");
            for (var i = 0; i < jsondata.d.length; i++) {
                thegrid.addRowData(i + 1, jsondata.d[i]);
            }
        }

        function getMovies() {
            debugger
            // ***** the MovieService#GetMovies method never gets called
            $.ajax({
                url: 'MovieService.svc/GetMovies',
                data: "{}", …
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc jquery jqgrid

2
推荐指数
1
解决办法
1万
查看次数

vb.net模块可见性

如果我moduleVB.Net类库中,它的可见性是否仅限于程序集?我正在寻找的是类的VB.Net等价物C# internal static.有谁知道相同的?

vb.net module

2
推荐指数
1
解决办法
595
查看次数

c# - 将catch块中的2个语句合并为一个

有人知道是否可以将下面的catch块中的代码编写为单个语句?我无法想出办法,如果有的话,我只是很好奇.

重要信息:必须保留堆栈跟踪.

    catch (Exception e)
    {
        if (e is MyCustomException)
        {
            // throw original exception
            throw;
        }

        // create custom exception
        MyCustomException e2 =
            new MyCustomException(
                "An error occurred performing the calculation.", e);
        throw e2;
    }
Run Code Online (Sandbox Code Playgroud)

c# exception

1
推荐指数
1
解决办法
1407
查看次数

是否更有效地投射两次或创建新实例

考虑这两段代码(您可以假设execeptionObj它是类型Object,但我们知道它是一个实例Throwable):

1)

logger.log(Level.ERROR, (Throwable) exceptionObj,
    ((Throwable) exceptionObj).getMessage());
Run Code Online (Sandbox Code Playgroud)

2)

Throwable t = new Throwable((Throwable)exceptionObj);
logger.log(Level.ERROR, t, t.getMessage());
Run Code Online (Sandbox Code Playgroud)

在我正在进行的项目的代码审查期间,一位评论者说第一种方式不如第二种方式有效,因为它涉及2次演员.我只是想知道你的想法.似乎创建一个新实例也会涉及一些开销.

java casting

1
推荐指数
2
解决办法
1626
查看次数

JBoss - 应用程序是否必须在JBOSS运行的同一jdk下编译?

我对JBOSS有点困惑,并在不同的JDK下运行它.例如,假设我正在运行JBOSS 5.1,在启动它之前,我将JAVA_HOME设置为指向JDK5.我们还假设我的Java EE应用程序是在JDK6下编译的.如果我将Java EE应用程序(在JDK6下编译)部署到JBOSS,当我尝试查找我的EJB时,会出现以下错误:

javax.naming.NameNotFoundException: tc_test_project not bound
Run Code Online (Sandbox Code Playgroud)

但是,如果我在JDK5下重新编译我的代码并重新部署它,它可以正常工作并且能够查找EJB.

同样,我可以将JAVA_HOME设置为JDK6并启动JBOSS,我的代码(在JDK6下编译)将在该场景下运行正常(它能够找到EBJ等).

所以你的Java EE应用程序似乎需要在JBOSS服务器运行的同一个JAVA_HOME下编译,或者我误解了什么?只想得到确认,谢谢.

java jboss java-ee

1
推荐指数
1
解决办法
649
查看次数

如何调用基类方法?

假设我有这样的类声明:

public abstract class IdentifiableEntity  {
    public boolean validate() {
        return true;
    }
}

public class PreferenceCategory extends IdentifiableEntity {
    public boolean validate() {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,假设我创建了PreferenceCategory变量,我想调用IdentifiableEntity.validate()方法,而不是 PreferenceCategory.validate()方法.

我原本以为我可以使用强制转换(见下文),但它仍然调用重写的方法:

PreferenceCategory cat = new PreferenceCategory();

// this calls PreferenceCategory.validate(), not what I want
((IdentifiableEntity)cat).validate(); 
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

java inheritance abstract-class

1
推荐指数
1
解决办法
5613
查看次数

Html.Hidden导致错误

当我尝试添加@Html.HiddenFor(@Model.ID)到我的代码时,访问页面时出现以下错误:

编译器错误消息:CS0411:无法从用法推断出方法'System.Web.Mvc.Html.InputExtensions.HiddenFor(System.Web.Mvc.HtmlHelper,System.Linq.Expressions.Expression>)'的类型参数.尝试显式指定类型参数.

我尝试阅读MSDN,但文档很糟糕(他们没有在此方法的文档中提供单个代码示例.

这是我的观点:

@model CustomerService.Entity.Order
@using CustomerService.Entity
@{
    ViewBag.Title = "OrderDetails";
}
<h2>
    OrderDetails</h2>
@using (Html.BeginForm("HandleSubmit", "Home", FormMethod.Post))
{    
    <table border="1">
        <tr>
            <td>
                <b>Order #</b>
            </td>
            <td>
                @Model.ID
            </td>
        </tr>
        <tr>
            <td>
                <b>Description</b>
            </td>
            <td>
                @Model.Description
            </td>
        </tr>
        <tr>
            <td>
                <b>Salesperson Name</b>
            </td>
            <td>
                @Model.SalespersonName
            </td>
        </tr>
    </table>
    <h3>
        Line Items</h3>

    <input id="btnAddLineItem" type="submit" name="AddLineItem" value="AddLineItem" />

    @Html.HiddenFor(@Model.ID)

    <table border="1">
        <tr>
            <td>
                <b>Line Item ID</b>
            </td>
            <td>
                <b>Description</b>
            </td>
        </tr>
        @for (int i = 0; …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor asp.net-mvc-3

1
推荐指数
1
解决办法
4558
查看次数

将0x0EB8之类的东西从字符串转换为int32类型?

我需要以int32的形式从用户那里获取供应商ID,它们通常看起来像这样.0x0EB8我可以把它写成代码

    int32 vid = 0x0EB8;
Run Code Online (Sandbox Code Playgroud)

这很好用.但我需要以字符串的形式从用户那里获取它.当我调用System.Convert.ToInt32("0x0EB8")时,我得到一个类型转换异常.

这是我的一些测试代码,它给了我一个例外.

        Int32 blah;
        Console.WriteLine("Please enter the Vendor ID");
        string blahString = Console.ReadLine();
        blah = Convert.ToInt32(blahString);
Run Code Online (Sandbox Code Playgroud)

有人知道这样做的好方法吗?

c# int32

1
推荐指数
1
解决办法
63
查看次数