小编Mar*_*erl的帖子

在ASP.NET中包含log4Net外部配置文件的最佳实践

我已经看到至少两种方法在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)

这样做的最佳做法是什么?

c# asp.net log4net

25
推荐指数
1
解决办法
3万
查看次数

IP地址验证

我正在重构我的代码,并希望使用该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).

任何帮助都非常感谢.

.net c# ip validation parsing

14
推荐指数
4
解决办法
4万
查看次数

在MSBuild中获取NuGet包文件夹

我想调用像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中的工具?

msbuild build-automation nuget nuget-package

12
推荐指数
1
解决办法
5540
查看次数

WPF全屏最大化

我基本上希望让我的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)

我在这里错过了什么?或者我可以做得更优雅吗?

c# wpf fullscreen

9
推荐指数
1
解决办法
3万
查看次数

"SqlStudio配置文件包"包未正确加载

当我启动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.

我该怎么做才能摆脱这个警告?

sql-server-2012 visual-studio-2012

9
推荐指数
2
解决办法
1万
查看次数

WPF图标规范,支持Windows 7并向后兼容

FileFormatException在Windows XP下启动WPF应用程序时遇到问题.正如我所知,这是由于我的应用程序图标中的图像大小超过64x64像素.

如果包含png-image的Vista图标用作Window.Icon,则应用程序无法使用FileFormatException启动.

确保图标的最大尺寸为64x64像素.它仍然可以是32位(使用alpha通道).

这是否真的是我的图标中没有大于64x64像素的图像大小的唯一解决方法?有没有办法以最高分辨率(256x256像素)支持Windows 7图标并同时向后兼容Windows XP?

我知道的图标规格为不同的单Windows操作系统的,但也有在如何支持Windows 7和是向后兼容的规范?

提前致谢!

wpf icons windows-xp backwards-compatibility windows-7

6
推荐指数
1
解决办法
1812
查看次数

我怎样才能让我的qtip决定他自己的左或右尖端属性

$('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'在别的地方做到这一点?我的意思是,我怎么知道?

css jquery position qtip

6
推荐指数
1
解决办法
5812
查看次数

使用多个外键连接两个表

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)

提前致谢.

sql

6
推荐指数
1
解决办法
8927
查看次数

检查所有鼠标按钮的按钮状态

是否有更好的方法来检查所有鼠标按钮的按钮状态,而不是检查任何不同的按钮额外?

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)

如果没有,如果不重复自己,我怎么能更优雅呢?

提前致谢!

.net c# wpf events coding-style

5
推荐指数
1
解决办法
9338
查看次数

Socket.Disconnect(bool重用)

Socket.Disconnect(bool reuse)根据MSDN,程序可以重用套接字.我的问题是:

  1. 如果我们决定重用套接字,那意味着它会重用相同的本地端点吗?它会保留该套接字的端口还是仅仅(我不相信它)保存所有对象资源?

  2. 如果它实际上只保存资源,它们会被分配给下一个连接吗?如果是这样,发送/接收缓冲区会自动刷新还是有某种方式刷新它们?断断续续地Socket.ShutDown(ShutDown.Both)为我做这件事吗?

  3. 我会在什么情况下使用Socket.Disconnect(false)?如果所有目的都是为了重用套接字,这会给予我什么?

c# sockets

5
推荐指数
1
解决办法
5354
查看次数