sha*_*wat 26 c# asp.net runtime-error ambiguous
我有一个类似的扩展方法
public static class Extension
{
public static string GetTLD(this string str)
{
var host = new System.Uri(str).Host;
int index = host.LastIndexOf('.'), last = 3;
while (index >= last - 3)
{
last = index;
index = host.LastIndexOf('.', last - 1);
}
var domain = host.Substring(index + 1);
return domain;
}
}
Run Code Online (Sandbox Code Playgroud)
我称之为
string domain = "." + _url.GetTLD();
Run Code Online (Sandbox Code Playgroud)
我在构建和清理构建时没有错误.
但我得到compilation error
运行时错误说
以下方法或属性之间的调用不明确:'myignOU.Extension.GetTLD(string)'和'myIGNOU.Extension.GetTLD(string)'
我发誓我没有把这个扩展方法放在项目中的任何其他位置.为什么我只在运行时收到此错误..?
但是,如果我删除此方法,那么我在构建时遇到错误,而不是在运行时.没有这种方法的代码,一切正常.
Dan*_*u15 70
我有同样的问题,但对我来说,它解决了从项目引用中删除自己的项目的问题.Resharper意外地添加了对同一项目的编译二进制文件的引用.这样我在我的项目中有2次相同的扩展类.在构建期间,它无法区分扩展类的源版本或二进制版本.
所以基本上:检查项目引用是否包含对自身的引用.
@shashwat提供的答案也是一个案例.
sha*_*wat 14
这不是一个真正的解决方案,我无法解释它是如何工作但它的工作原理.
我正在尝试Project Properties,References,bin,obj中的所有内容,但实际上没有任何帮助.我只是尝试了每个选项,并从上下文菜单中选择"转换为Web应用程序".虽然它之前是Web应用程序.它向我显示了一个警告,说.designer.cs
文件将被添加到每个aspx文件中,我只需单击确定.
除了App_Code
文件夹(所有这些类都被重命名)之外,一切都保持不变Old App_Code
,我将构建项目.现在我在运行时没有收到编译错误.
我知道App_Code文件夹是针对网站项目的,直到这次WAP才对此我没有任何问题.但我只是意识到我不应该在WAP中使用App_Code文件夹,因为它在wrox论坛中进行了讨论(第1点).作者在这里说过
WAP不支持App_Code.App_Code文件夹在运行时编译 ; WAP中的所有代码都是在编译/开发时编译的.因此,当您向WAP添加App_Code文件夹时.你最终得到了重复的代码; 例如,App_Code中定义的类也将显示在wap DLL中.修复很简单:只需将文件夹命名为Classes或CodeFiles.
我在转换之前尝试过重命名,但那次它没有用.
归档时间: |
|
查看次数: |
8189 次 |
最近记录: |