Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中调用此方法以从WS返回数据_C# - Fatal编程技术网

如何在C#中调用此方法以从WS返回数据

如何在C#中调用此方法以从WS返回数据,c#,C#,我是c#的乞丐。我想开发一个简单的应用程序,从WS-Server检索数据。下面我有这个方法,但我不知道如何在main方法中调用它,以便从WS返回一个值 public static P6WSStubs.Ws.P6.WBS.WBS[] ReadWbs(string WbsIdListFilter) { PrimaveraService.HostName = "xxx.xx.xxx.xxx"; PrimaveraService.Port = "8206";

我是c#的乞丐。我想开发一个简单的应用程序,从WS-Server检索数据。下面我有这个方法,但我不知道如何在main方法中调用它,以便从WS返回一个值

public static P6WSStubs.Ws.P6.WBS.WBS[] ReadWbs(string WbsIdListFilter)
    {
        PrimaveraService.HostName = "xxx.xx.xxx.xxx";
        PrimaveraService.Port = "8206";
        PrimaveraService.HTTP = "http://";
        WBSFieldType[] wbsFieldTypeArray = new WBSFieldType[17] { WBSFieldType.ObjectId, WBSFieldType.Code, WBSFieldType.Name, WBSFieldType.ProjectObjectId, WBSFieldType.ParentObjectId, WBSFieldType.SummaryPlannedStartDate, WBSFieldType.SummaryPlannedFinishDate, WBSFieldType.SummaryActualStartDate, WBSFieldType.SummaryActualFinishDate, WBSFieldType.SummaryDurationPercentComplete, WBSFieldType.SummaryUnitsPercentComplete, WBSFieldType.SummaryPerformancePercentCompleteByCost, WBSFieldType.SummaryRemainingTotalCost, WBSFieldType.SummaryEarnedValueByCost, WBSFieldType.SummaryPlannedCost, WBSFieldType.SummaryBudgetAtCompletionByCost, WBSFieldType.SummaryEstimateAtCompletionByCost };
        ReadWBS ReadWBS1 = new ReadWBS();
        ReadWBS1.Field = wbsFieldTypeArray;
        ReadWBS1.Filter = "ObjectId IN (" + WbsIdListFilter + ")";
        WBSService wbsService = new WBSService();
        wbsService.Url = HTTP + HostName + ":" + Port + "/p6ws/services/WBSService";
        wbsService.Timeout = 6000000;
        wbsService.CookieContainer = PrimaveraService.cookieContainer;
        return wbsService.ReadWBS(ReadWBS1);

    }
我应该如何调用此方法以从WS接收值?
很抱歉提出这个愚蠢的问题。

我假设您的ReadWbs和Main方法都在同一个类中,在这种情况下,您的代码应该如下所示(方法的顺序可能不同,这无关紧要):

publicstaticp6wsstubs.Ws.P6.WBS.WBS[]ReadWbs(字符串WbsIdListFilter)
{
//同上
}
公共静态void Main(字符串[]args)
{
字符串wbsIdListFilter=“”;
P6WSStubs.Ws.P6.WBS.WBS[]result=ReadWbs(wbsIdListFilter);
//...
}

类似于P6WSStubs.Ws.P6.WBS.WBS[]result=ReadWbs(“whateveryourfiltervalues”)非常感谢!但若我想弹出一个带有WBS名称的消息框,你们能给我一个提示吗?你们可以很容易地用谷歌搜索如何显示一个消息框。而且我们看不到您的
结果
数组的内容,因此我们不知道名称存储在其中的什么位置(以便获取名称并将其发送到messagebox)。因此,第一部分我们不需要帮助您,第二部分我们无法帮助您(在没有看到更多信息的情况下),我可以看到:我的结果数组的内容,以便知道其中存储的名称?我想获取信息并将其写在excelHello中,谢谢,这似乎是工作。但是,如果我想弹出一个带有WBS名称的消息框,您能给我一个提示吗?假设您正在编写Windows窗体应用程序,您可以使用System.Windows.Forms.MessageBox.Show。如果您正在编写控制台应用程序(如果您直接引用Main,则更可能),请使用console.WriteLine()。Stack overflow并不是真正面向初学者的教程,您最好从internet上的其他地方学习一些C#编程基础知识。如果你一直在这里提问,你将很难取得很大的进步。谢谢你的回答。我知道我必须使用messagebox.show命令..但我不知道我必须对结果使用调试。我用了一种新的方法。再次感谢。
public static P6WSStubs.Ws.P6.WBS.WBS[] ReadWbs(string WbsIdListFilter)
{
   //Same as above
}

public static void Main(string[] args)
{
    string wbsIdListFilter = "<Your Filter Here>";
    P6WSStubs.Ws.P6.WBS.WBS[] result = ReadWbs(wbsIdListFilter);
    //...
}