首页 / C# / 如何在C#中调用特定名称空间的函数
如何在C#中调用特定名称空间的函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在C#中调用特定名称空间的函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2122字,纯文字阅读大概需要4分钟。
内容图文
![如何在C#中调用特定名称空间的函数](/upload/InfoBanner/zyjiaocheng/665/f668010e9f934939a35271d67d9dff87.jpg)
目前,我在同一个库中有两个函数,在我的情况下都可以调用它们.如何指定函数的特定名称空间,以便对其进行调用.
The call is ambiguous between the following methods or properties: ‘Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions.UseContentRoot(Microsoft.AspNetCore.Hosting.IWebHostBuilder, string)’
and
‘Microsoft.AspNetCore.Hosting.HostingAbstractionsWebHostBuilderExtensions.UseContentRoot(Microsoft.AspNetCore.Hosting.IWebHostBuilder, string)’
那是错误(读起来有点混乱),但这就是问题所在.
这是代码:
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Builder;
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory()) //The Problem!!
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
解决方法:
您使用的是流畅的表示法(对链接在一起的方法的成功调用),并且在此过程中依赖于静态扩展方法,所有这些都是不错的样式.不确定如何保留这种漂亮的样式,但是如果将其拆开,则可以通过名称空间来定位所需的方法调用.
var intermediateResult = new WebHostBuilder()
.UseKestrel();
现在选择所需的方法(我的示例使用第一个名称空间中的方法,但这是您的选择).
Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions.UseContentRoot(intermediateResult, Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
丑陋,但它应该可以编译并且可以运行.
注意.您会注意到,我使用两个参数调用了UseContentRoot()方法!那只是使下面的事情变得清晰.
静态扩展方法是使用表示该方法将用作扩展方法的类的初始参数编写的.因此,UseContentRoot(String currentDir)实际上是类似于UseContentRoot(此IWebHostBuilder构建器,String currentDir)编写的,这意味着UseContentRoot是为类(接口)IWebHostBuilder编写的扩展方法.
现在,特殊的this关键字用法允许该方法被调用(并链接到您的情况),就像该方法是IWebHostBuilder的成员一样,因此,如果您有IWebHostBuilder构建器,则可以执行builder.UseContentRoot(currentDir).因此,初始参数“移动”到点的左侧,看起来此扩展方法是在IWebHostBuilder上声明为采用一个参数的方法.
但是调用它好像它是属于IWebHostBuilder的方法一样,只是一种方便.您仍然可以使用其两个声明的参数调用最初编写的方法:UseContentRoot(IWebHostBuilder builder,String currentDir),这是实际对其进行声明的方式.
内容总结
以上是互联网集市为您收集整理的如何在C#中调用特定名称空间的函数全部内容,希望文章能够帮你解决如何在C#中调用特定名称空间的函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。