C#从同一解决方案中的另一个项目调用公共静态任务
我的解决方案的一个项目中包含以下代码: 这是我的程序和我的方法,一个异步HTTP POST:C#从同一解决方案中的另一个项目调用公共静态任务,c#,asynchronous,call,C#,Asynchronous,Call,我的解决方案的一个项目中包含以下代码: 这是我的程序和我的方法,一个异步HTTP POST: public class Program { private static readonly NLog.Logger _log_ = NLog.LogManager.GetCurrentClassLogger(); static void Main(string[] args) { //... initializing MyThing with properti
public class Program
{
private static readonly NLog.Logger _log_ = NLog.LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{
//... initializing MyThing with properties and values for the method arguments, and then I call the method
//and it works.
DoHttpPostAsync(MyThing.BaseURL, MyThing.Headers, MyThing.Body, HttpMethod.Post).GetAwaiter().GetResult();
}
public async static Task DoHttpPostAsync(Uri HTTPaddress, cHeaders cconsHeaders, cBody ccons, HttpMethod Method)
{
try
{
HttpClient client = new HttpClient();
System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true);
using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, HTTPaddress))
{
client.BaseAddress = HTTPaddress;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("*/*"));
client.DefaultRequestHeaders.Add("Connection", "keep-alive");
//....
}
catch (Exception e)
{
Console.WriteLine("Error: " + e.TargetSite + "\r\n" + e.Message); Console.ReadLine();
}
}
}
}
从另一个项目中,我想把这个任务称为。虽然我可以在我的第一个项目中调用它,但它不会显示在另一个项目中(依赖项正在工作)。我确实有“using..”,我确实看到了所有属性和赋值等,当我尝试调用该方法时,它根本不存在(在intellisense下拉列表中。我如何从我的其他项目调用该方法?
谢谢你的帮助
注:
这是“其他”项目,调用代码
using psd2c = <the initial project name>;
//...
public class Testing
{
public void ACreateSome()
{
psd2c.PCns PDS2ewC = new psd2c.PCns();
PDS2ewC.BaseURL = new System.Uri("http://192.xxx.yyy.zzz:8678/some/path/here/");
PDS2ewC.Body.access.AllPd2 = "allAccounts";
PDS2ewC.Body.access.AvailableAccounts = "YES";
PDS2ewC.Body.CombinedServiceIndicator = false;
PDS2ewC.Body.FrequencyPerDay = 10;
PDS2ewC.Body.ValidUntil = "2020-12-31";
PDS2ewC.Headers.CorrID = "5D1D38...";
PDS2ewC.Headers.RequestID = "53JD98XD-8...";
PDS2ewC.Headers.CToken = "abc... ...xyz";
PDS2ewC.DoHttpPostAsync(... ...etc); //the async in the other proj: Not recognised at all...
}
}
使用psd2c=;
//...
公共类测试
{
公共空间
{
psd2c.PCns PDS2ewC=新的psd2c.PCns();
PDS2ewC.BaseURL=新系统.Uri(“http://192.xxx.yyy.zzz:8678/some/path/here/");
PDS2ewC.Body.access.AllPd2=“allAccounts”;
PDS2ewC.Body.access.AvailableAccounts=“是”;
PDS2ewC.Body.CombinedServiceIndicator=false;
PDS2ewC.Body.FrequencyPerDay=10;
PDS2ewC.Body.ValidUntil=“2020-12-31”;
PDS2ewC.Headers.CorrID=“5D1D38…”;
PDS2ewC.Headers.RequestID=“53JD98XD-8…”;
PDS2ewC.Headers.CToken=“abc……xyz”;
PDS2ewC.DoHttpPostAsync(……etc);//另一个项目中的异步:根本无法识别。。。
}
}
它不是静态的吗?作为旁白,我强烈建议您开始遵循.NET命名约定-参数名为httpAddress
和method
,而不是httpAddress
和method
,类名没有前缀c
。@Jonsket:很好,我会尽快听从您的建议.至于这个问题,虽然是公共静态的,但我在另一个项目中做了一个公共类ABC,在其中我有一个方法,比如说public void Something(),在那里我实例化并添加参数。当我试图调用此任务时,根本不存在…@Fildor:谢谢你的评论和链接-我是新手,所以你提供的链接有大量有用的信息,我需要学习。谢谢!