我们从.NET 2.0升级到.NET 3.5.尝试在Visual Studio 2008中的调试器下运行ASP .NET Web项目时,我的同事正在获得以下对话框.他可以构建正常,但他无法调试(因此,这是一个运行时问题) :
Microsoft Visual Studio
"Extender Provider无法为此对象返回Extender.请在继续之前更正.(您可以重命名当前的web.config并添加一个新的.)"
好
搜索此错误提供了一个法语版本,但谷歌已翻译,并且该家伙删除了他的web.config.好吧,我的同事有一个web.config.
谢谢!
我搜索过互联网,似乎无法找到与此主题相关的任何内容.我认为会有一些讨论.我找不到它.
基本上,我正在寻找的是使用现有.NET程序集执行(较旧的)命令行可执行文件所做的相同事情的充分理由.因此,如果我使用了程序集,我会包含它并开始在我的C#代码中使用它.对于我们旧的命令行工具,我会做一个Process.Start(...)等等.
背景是:
我要求对传输到我们系统的文件执行PGP加密和解密.我目前的选择是使用命令行GPG工具(http://www.gnupg.org/)或Bouncy Castle .NET程序集.
有人问我为什么不在我的代码中"自动化"旧的GPG命令行工具.我想用一些情报回答这个问题.现在,我只能想到两个原因:
错误处理:我应该不仅能够使用.NET程序集获得更好的错误信息,而且可以通过try/catch和异常等更好地处理它们.我甚至可以根据需要滚动我自己的异常,等等.
代码可移植性:我使用.NET程序集构建的任何内容或多或少都是独立的.我不需要找到GPG可执行文件并将其复制到我复制我使用它编写的应用程序的每个地方.
表现:可能.我没有任何关于此的经验或数据.
我很感激有关这个主题的任何意见.
我们目前正在使用以下内容在我们的网络应用程序中创建美元价值:
string.Format("{0:C0}", dollarValue );
Run Code Online (Sandbox Code Playgroud)
在这个例子中,如果dollarValue是145,那么我们将看到:145美元.如果它是-145,那么我们将看到(145美元)而不是 - 145美元.请注意,对于我们来说,dollarValue是一个double,但它可以是任何数字类型.我认为.
无论如何,我想要的是145美元或145美元.
现在,根据我的研究,使用NumberFormatInfo类可能会这样做.我无法弄清楚如何使用它,我找不到任何有效的例子.我确实在这里看到了这个问题:当货币值为0.00美元时,C#创建一个自定义的NumberFormatInfo来显示"Free"但是来自这个问题的MSDN示例似乎与我真正想做的有点不同.
我意识到,我需要做以下事情:
double dollarValue = -145d;
string myMoney = dollarValue.ToString( "C0", someIFormatProvider );
Run Code Online (Sandbox Code Playgroud)
someIFormatProvider可能是NumberFormatInfo类型.现在,我所做的就是:
NumberFormatInfo ni = new NumberformatInfo();
ni.CurrencyNegativePattern = 1; // The value 1 should mean not to use parenthesis
string myMoney = dollarValue.ToString( "C0", ni );
Run Code Online (Sandbox Code Playgroud)
...我得到一个"Instance is Read-Only"异常.虽然CurrencyNegativePattern属性的"文档"说你可以设置和获取值,但显然你不能.此外,NumberFormatInfo是一个密封类.我不能轻易地创建一个基于它的新类并覆盖该值.
我不知道如何处理这个问题.现在,我的解决方法是只是否定我的负面价值,并得到一个积极的结果,我string.Format(...)再次做.是的,我意识到前面没有负面的迹象,但是,当然,通过在结果前面根据需要添加" - "可以很容易地解决这个问题.
有人能够为我提供一个如何在这种情况下正确有效地使用NumbefFormatInfo类的工作示例吗?谢谢.
我对样式和性能方面的考虑都很感兴趣.我的选择是执行以下任一操作(抱歉格式不佳,但此网站的界面不是WYSIWYG):
string value = "ALPHA";
switch ( value.ToUpper() )
{
case "ALPHA":
// do somthing
break;
case "BETA":
// do something else
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
public enum GreekLetters
{
UNKNOWN= 0,
ALPHA= 1,
BETA = 2,
etc...
}
string value = "Alpha";
GreekLetters letter = (GreekLetters)Enum.Parse( typeof( GreekLetters ), value.ToUpper() );
switch( letter )
{
case GreekLetters.ALPHA:
// do something
break;
case GreekLetters.BETA:
// do something else
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,我更喜欢下面的选项TWO,但除了基本的风格原因之外我没有任何其他真正的理由.但是,我甚至不确定是否存在风格原因.感谢您的输入.
我点击一个链接从一个页面重定向到另一个页面(Response.Redirect(page.aspx)).
浏览器搅拌约30秒,页面显示.我试图找出加载页面需要这么长时间的原因.
该页面包含两个其他自定义控件.
我已经注释掉了每个控件和两个控件的代码行,页面仍然需要大约30秒才能加载.
我已经为每个控件和page.aspx设置了Page_Load事件的断点,并且点击带有Response.Redirect的链接到第一个断点也需要大约30秒.
我加载了任务管理器并点击了链接.我注意到在此30秒的时间范围内运行aspnet_wp.exe和csc.exe.
我想知道在等待页面加载时是否存在某种代码隐藏的shinanigans.
这仅在我第一次点击链接时发生.之后,它并没有那么慢.
我用Google搜索了,但没有很多有用的信息.有人有主意吗?
谢谢,
- -担 - -
我正在开发一个ASP .NET网站,允许用户查看和打印Microsoft PowerPoint幻灯片.
马上,我知道Aspose有一款可能让我这么做的产品.我想做的是看管理层的替代方案,"是的,我已经看过了替代方案,他们......"
我似乎找不到Source Forge上的开源项目,这个项目似乎已经死了,我甚至不确定它是否能够满足我的需求:http: //b2xtranslator.sourceforge.net/
因此我的问题是:是否有人知道Aspose Slides .NET的替代方案?如果是这样,请列出它们.如果您知道没有合适的替代方案,我会发现这些信息也很有用.
万分感谢.
首先,我想我知道发生了什么,但我想我会把这个问题带到这里进行一些讨论,看看是否有人对这个问题有"回答",而不是我在想什么.因为,这对我来说并不完全有意义.
我发现在为异常创建错误日志时,我这样做并且它无法正常工作:
catch( Exception ex )
{
LogException( ex.Message );
if ( !string.IsNullOrEmpty( ex.InnerException.Message ) )
{
LogInnerException( ex.InnerException.Message );
}
}
Run Code Online (Sandbox Code Playgroud)
瞧,当我跑这个时,我经常得到一个NullReferenceException.咦?
我正在检查null,对吗?
现在,我必须使用这个:
if ( ex.InnerException != null && !string.IsNullOrEmpty( ex.InnerException.Message )
Run Code Online (Sandbox Code Playgroud)
但这似乎是违反直觉的,也会产生反作用.因为,如果我这样做:
if ( !string.IsNullOrEmpty( null ) )
Run Code Online (Sandbox Code Playgroud)
这根本不会给我任何问题.如果ex.InnerException为null,那么当然ex.InnerException.Message为null,对吗?
显然不是.
我写了一个完整的控制台应用程序来重现这个.如果你
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace stringisnullorempty
{
class Program
{
static void Main( string[] args )
{
if ( !string.IsNullOrEmpty( null ) )
{
Console.WriteLine( "Ha ha ha, right...." );
}
MyBClass …Run Code Online (Sandbox Code Playgroud)