添加到.NET 4 的ExpandoObject类允许您在运行时任意设置对象的属性.
使用a Dictionary<string, object>
或者甚至是Hashtable有什么优势吗?据我所知,这只是一个哈希表,您可以使用稍微简洁的语法访问.
例如,为什么这样:
dynamic obj = new ExpandoObject();
obj.MyInt = 3;
obj.MyString = "Foo";
Console.WriteLine(obj.MyString);
Run Code Online (Sandbox Code Playgroud)
真的比以下更好,或者大不相同:
var obj = new Dictionary<string, object>();
obj["MyInt"] = 3;
obj["MyString"] = "Foo";
Console.WriteLine(obj["MyString"]);
Run Code Online (Sandbox Code Playgroud)
使用ExpandoObject而不是仅仅使用任意字典类型可以获得什么真正的优势,除了不明显你正在使用将在运行时确定的类型.
对于Visual Studio 2010基于Web的应用程序,我们具有Config Transformation功能,通过该功能,我们可以为不同的环境维护多个配置文件.但是,对于Windows Services/WinForms或控制台应用程序,App.Config文件无法使用相同的功能.
这里提供了一种解决方法:将XDT魔术应用于App.Config.
然而,它并不简单,需要许多步骤.有没有更简单的方法来实现相同的app.config文件?
app-config .net-4.0 visual-studio web-config-transform slowcheetah
我有一个项目,其中我想使用一些.NET 4.0功能,但核心要求是我可以使用针对2.X编译的System.Data.SQLite框架.我看到提到这是可能的,例如这里接受的答案,但我不知道如何实际实现这一点.
当我在参考2.X程序集时尝试运行我的4.0项目时,我得到:
混合模式程序集是针对运行时的版本"v2.0.50727"构建的,如果没有其他配置信息,则无法在4.0运行时加载.
什么"附加配置"是必要的?
尝试在构建服务器上构建我的项目给出了以下错误:
Microsoft (R) Build Engine Version 4.0.30319.1
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the …
Run Code Online (Sandbox Code Playgroud) 我安装了DotNetOpenAuth SDK-3.4.5.10201.vsix,我无法让它工作.它在本地工作(当我作为localhost运行时)但当我尝试发布它不起作用.
我得到的IIS错误消息是
错误摘要
HTTP错误500.22 - 内部服务器错误
检测到的ASP.NET设置不适用于集成管理管道模式.
和
Run Code Online (Sandbox Code Playgroud)Module ConfigurationValidationModule Notification BeginRequest Handler StaticFile Error Code 0x80070032
那么有一些关于如何解决问题的建议:
你可以尝试的事情:
将配置迁移到该
system.webServer/modules
部分.您可以手动或通过命令行中的AppCmd执行此操作 - 例如,%SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/"
.使用AppCmd
迁移应用程序将使其能够在集成模式下工作,并继续在经典模式和早期版本的IIS中工作.如果您确定可以忽略此错误,可以通过设置
system.webServer/validation@validateIntegratedModeConfiguration
为false 来禁用它 .或者,将应用程序切换到经典模式应用程序池 - 例如,
%SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool"
.只有在您无法迁移应用程序时才能执行此操作.
(将"默认网站"和"经典.NET AppPool"设置为您的应用程序路径和应用程序池名称)
但问题是我无法访问ISS服务器,因为我不是它的所有者.有什么方法可以解决这个问题吗?
Microsoft .NET Framework 4.0完整安装程序(32位和64位)为48.1 MB,客户端配置文件安装程序为41.0 MB.解压缩的安装文件分别为237 MB和194 MB,一旦安装,它们分别为537 MB和427 MB.
这是110 MB的差异.两个包之间有什么区别?
什么时候安装客户端配置文件而不是完整的.NET Framework?
我使用Visual Studio 2010 RC运行Windows 7旗舰版(64位).我最近决定让VS在IIS上运行/调试我的应用程序而不是随附的开发服务器.
但是,每次我尝试运行MVC应用程序时,都会收到以下错误:
HTTP错误403.14 - 禁止Web服务器配置为不列出此目录的内容.详细
错误信息
模块DirectoryListingModule
通知ExecuteRequestHandler
处理程序StaticFile错误
代码0x00000000请求
URL http:// localhost:80/mySite /
物理路径C:\ myProject\mySite \
登录方法匿名登录
用户匿名
我default.aspx
在目录中放置了一个文件,我收到以下错误:
HTTP错误500.21 - 内部服务器错误处理程序"PageHandlerFactory-Integrated"在其模块列表中有一个错误的模块"ManagedPipelineHandler"
有没有其他步骤我忘了采取这个工作?
注意:我在安装VS 2010 RC后安装了IIS 7.5.我使用了Visual Studio 2010中MVC项目的"属性"中"Web"选项卡下的内置"创建虚拟目录"按钮.我确保该应用程序使用的是ASP.NET 4应用程序池.
以下是我所拥有的IIS的已安装功能.
%windir%\Microsoft.NET\assembly\
是新的GAC.这是否意味着现在我们必须管理两个GAC,一个用于.NET 2.0-3.5应用程序,另一个用于.NET 4.0应用程序?
问题是,为什么?
我正在尝试使用C#4.0编译我的excel插件,并在Visual Studio中构建项目时开始遇到此问题.告诉你我之前没有遇到过这个问题,这很重要.什么可能导致这种情况发生?
我喜欢元组.它们允许您快速将相关信息分组在一起,而无需为其编写结构或类.这在重构非常本地化的代码时非常有用.
然而,初始化它们的列表似乎有点多余.
var tupleList = new List<Tuple<int, string>>
{
Tuple.Create( 1, "cow" ),
Tuple.Create( 5, "chickens" ),
Tuple.Create( 1, "airplane" )
};
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法?我希望得到一个类似于字典初始化器的解决方案.
Dictionary<int, string> students = new Dictionary<int, string>()
{
{ 111, "bleh" },
{ 112, "bloeh" },
{ 113, "blah" }
};
Run Code Online (Sandbox Code Playgroud)
我们不能使用类似的语法吗?
.net-4.0 ×10
c# ×5
.net ×4
iis-7.5 ×2
app-config ×1
asp.net ×1
build-server ×1
c#-4.0 ×1
collections ×1
dbproj ×1
gac ×1
iis ×1
list ×1
msbuild ×1
slowcheetah ×1
sqlite ×1
targets ×1
tuples ×1