我已经看到至少两种方法在ASP.NET Web应用程序中包含外部log4net配置文件:
在AssemblyInfo.cs文件中具有以下属性:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log.config", Watch = true)]
Run Code Online (Sandbox Code Playgroud)
在Global.asax.cs中调用XmlConfigurator:
protected void Application_Start()
{
XmlConfigurator.Configure(new FileInfo("Log.config"));
}
Run Code Online (Sandbox Code Playgroud)
这样做的最佳做法是什么?
我正在重构我的代码,并希望使用该IPAddress.TryParse方法来验证字符串是否是有效的IPv4地址而不是使用正则表达式:
public static bool IsIPv4(string value)
{
IPAddress address;
if (IPAddress.TryParse(value, out address))
{
if (address.AddressFamily == AddressFamily.InterNetwork)
{
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我的单元测试现在失败了,因为这些输入值返回true并被解析为以下IPAddress对象:
value = "0.0.0.0" -> address = {0.0.0.0}
value = "255.255.255" -> address = {255.255.0.255}
value = "65536" -> address = {0.1.0.0}
Run Code Online (Sandbox Code Playgroud)
这有意义吗?我可以看到这0.0.0.0在技术上是一个有效的IPv4地址,即使用户输入它也没有意义.那两个呢?为什么他们以他们的方式进行转换,我应该将它们视为有效,即使它对用户来说可能不是透明的,用户可能只是忘记输入句点(65536而不是6.5.5.36).
任何帮助都非常感谢.
我想调用像NUnit这样的可执行工具,我在MSBuild中通过NuGet管理它:
<Target Name="Test">
<CreateItem Include="$(BuildCompileDirectory)\*.Tests.*dll">
<Output TaskParameter="Include" ItemName="TestAssemblies" />
</CreateItem>
<NUnit
Assemblies="@(TestAssemblies)"
ToolPath="$(PackagesDirectory)\NUnit.2.5.10.11092\tools"
WorkingDirectory="$(BuildCompileDirectory)"
OutputXmlFile="$(BuildDirectory)\$(SolutionName).Tests.xml" />
</Target>
Run Code Online (Sandbox Code Playgroud)
问题是NuGet包的文件夹包含包的版本号.例如nunit-console.exe在文件夹中packages\NUnit.2.5.10.11092\tools.如果我更新NUnit包,这个路径将会改变,我必须更新我的MSBuild脚本.这是不可接受的.
MSBuild不允许在目录中使用通配符,因此这不起作用:
ToolPath="$(PackagesDirectory)\NUnit.*\tools"
Run Code Online (Sandbox Code Playgroud)
如何更新NuGet包时,如何在不更新构建脚本的情况下调用MSBuild中的工具?
我基本上希望让我的WPF窗口进入全屏模式,按下F11或按下窗口右上角的最大化按钮.
虽然以下工作就像按F11的魅力:
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.F11)
{
WindowStyle = WindowStyle.None;
WindowState = WindowState.Maximized;
ResizeMode = ResizeMode.NoResize;
}
}
Run Code Online (Sandbox Code Playgroud)
这仍将显示Windows任务栏(使用Windows 7测试):
protected override void OnStateChanged(EventArgs e)
{
if (WindowState == WindowState.Maximized)
{
WindowStyle = WindowStyle.None;
WindowState = WindowState.Maximized;
ResizeMode = ResizeMode.NoResize;
}
base.OnStateChanged(e);
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?或者我可以做得更优雅吗?
当我启动VS 2012 RC时,我收到以下加载错误消息:
The 'SqlStudio Profile Package' package did not load correctly.
The problem may have been caused by a configuration change or by the installation
of another extension. You can get more information by examining the file
'C:\Users\User\AppData\Roaming\Microsoft\VisualStudio\11.0\ActivityLog.xml'.
Run Code Online (Sandbox Code Playgroud)
我还安装了SQL Server 2012 RTM.
我该怎么做才能摆脱这个警告?
我FileFormatException在Windows XP下启动WPF应用程序时遇到问题.正如我所知,这是由于我的应用程序图标中的图像大小超过64x64像素.
如果包含png-image的Vista图标用作Window.Icon,则应用程序无法使用FileFormatException启动.
确保图标的最大尺寸为64x64像素.它仍然可以是32位(使用alpha通道).
这是否真的是我的图标中没有大于64x64像素的图像大小的唯一解决方法?有没有办法以最高分辨率(256x256像素)支持Windows 7图标并同时向后兼容Windows XP?
我知道的图标规格为不同的单Windows操作系统的,但也有在如何支持Windows 7和是向后兼容的规范?
提前致谢!
$('a.tooltip').each(function(){
$(this).qtip({
content: { url: 'includes/qtip.php?'+$(this).attr('rel')+' #'+$(this).attr('div'), text:'loading...' },
show: { delay: 400},
hide: { fixed: true, delay: 200 },
position: {
corner: {
target: 'bottomLeft',
tooltip: 'right'
}
},
style: {
name: 'light',
width: 700
}
});
});
Run Code Online (Sandbox Code Playgroud)
我喜欢wto .tooltip项目在我网站的右侧面板上,但如果没有看不到它完整,
我怎么能tooltip:'right'在别的地方做到这一点?我的意思是,我怎么知道?
表 Trips
TripId_PK
StartLocationId_FK
EndLocationId_FK
Run Code Online (Sandbox Code Playgroud)
表 Locations
LocationId_PK
Name
Run Code Online (Sandbox Code Playgroud)
如何将两个表连接两次,以便我可以获得如下数据集:
TripId_PK
StartLocationName
EndLocationName
Run Code Online (Sandbox Code Playgroud)
提前致谢.
是否有更好的方法来检查所有鼠标按钮的按钮状态,而不是检查任何不同的按钮额外?
var mouseEventArgs = (System.Windows.Input.MouseEventArgs)e.StagingItem.Input;
if (mouseEventArgs.LeftButton == MouseButtonState.Released &&
mouseEventArgs.MiddleButton == MouseButtonState.Released &&
mouseEventArgs.RightButton == MouseButtonState.Released &&
mouseEventArgs.XButton1 == MouseButtonState.Released &&
mouseEventArgs.XButton2 == MouseButtonState.Released)
{
return;
}
Run Code Online (Sandbox Code Playgroud)
如果没有,如果不重复自己,我怎么能更优雅呢?
提前致谢!
Socket.Disconnect(bool reuse)根据MSDN,程序可以重用套接字.我的问题是:
如果我们决定重用套接字,那意味着它会重用相同的本地端点吗?它会保留该套接字的端口还是仅仅(我不相信它)保存所有对象资源?
如果它实际上只保存资源,它们会被分配给下一个连接吗?如果是这样,发送/接收缓冲区会自动刷新还是有某种方式刷新它们?断断续续地Socket.ShutDown(ShutDown.Both)为我做这件事吗?
我会在什么情况下使用Socket.Disconnect(false)?如果所有目的都是为了重用套接字,这会给予我什么?