小编Mar*_*rek的帖子

我可以覆盖父元素的z-index继承吗?

有没有办法在使用绝对位置时覆盖父元素的z-index继承.我希望2222 div位于0000 div之上:

<div style="background-color:green; z-index:10; position:relative">
     OOOO
</div>

<div style="background-color:yellow; z-index:5; position:relative">
     1111
     <div style="position:absolute; background-color:red; 
                 z-index:15; top:-8px; left:20px">
         2222
     </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我无法更改0000或1111 div的z-index,我试图将我的2222元素相对于1111元素定位.

css position z-index

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

未捕获错误的原因:尝试使用断开连接的端口对象

我在响应来自内容脚本的请求时在后台页面中收到此错误.有谁知道可能导致此错误的原因是什么?

完整堆栈跟踪:

Uncaught Error: Attempting to use a disconnected port object   chrome/RendererExtensionBindings:147 
chrome.Port.postMessage     chrome/RendererExtensionBindings:147 
chromeHidden.Port.dispatchOnConnect.connectEvent         chrome/RendererExtensionBindings:89 
myExtension.foo.sendResponse.state      background.js:1573 
db.readTransaction.tx.executeSql.paramStr      background.js:1038 
Run Code Online (Sandbox Code Playgroud)

这只发生在几个小时的浏览重新加载扩展后没有帮助 - 不是在重新启动Chrome浏览器后它将是一个解决方案所有恢复正常几个小时内容脚本可以继续向后台发送请求但是没有来自后台的响应可以被发送回来有没有什么方法可以捕获这个Uncaught错误并重置监听器?

我正在使用chrome.extension.onRequest.addListener进行沟通.在我回复之前我查询数据库,在查询完成之前我不发送任何其他响应.

谢谢,马雷克

messaging google-chrome-extension

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

实体框架中推荐的身份生成方法是什么?

我对StoreGeneratedPattern最高效的方式感兴趣.

在过去,我习惯让DB为我生成ID,但我想知道设置是否有任何优势

StoreGeneratedPattern = None 
Run Code Online (Sandbox Code Playgroud)

代替

StoreGeneratedPattern = Identity
Run Code Online (Sandbox Code Playgroud)

我甚至不确定当我将它设置为Calculated时会发生什么.

有什么建议?有没有与此相关的好文章,因为msdn不是很清楚.我主要在我的架构中使用少量GUID的int.

.net c# identity entity-framework

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

如何序列化对象+压缩它然后解压缩+反序列化没有第三方库?

我在内存中有一个大对象,我想将其作为blob保存到数据库中.我想在保存之前压缩它,因为数据库服务器通常不是本地的.

这就是我现在所拥有的:

using (var memoryStream = new MemoryStream())
{
  using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Compress))
  {
    BinaryFormatter binaryFormatter = new BinaryFormatter();
    binaryFormatter.Serialize(gZipStream, obj);

    return memoryStream.ToArray();
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用Total Commander压缩相同的字节时,它至少会减小50%的大小.使用上面的代码,它压缩58MB到48MB,任何小于15MB的东西都会变得更大.

我应该使用第三方zip库还是有更好的方法在.NET 3.5中执行此操作.我问题的其他任何替代方案?

编辑:

刚刚在上面的代码中发现了一个错误.安吉洛感谢你的解决.

GZipStream压缩仍然不是很好.与TC 48%压缩相比,gZipStream的平均压缩率为35%.

我不知道我用以前的版本得到了什么样的字节:)

EDIT2:

我发现如何将压缩率从20%提高到47%.我不得不使用两个内存流而不是一个!谁能解释为什么会这样呢?

这是一个包含2个内存流的代码,它可以提供更好的压缩效果!

using (MemoryStream msCompressed = new MemoryStream())
using (GZipStream gZipStream = new GZipStream(msCompressed, CompressionMode.Compress))
using (MemoryStream msDecompressed = new MemoryStream())
{
  new BinaryFormatter().Serialize(msDecompressed, obj);
  byte[] byteArray = msDecompressed.ToArray();

  gZipStream.Write(byteArray, 0, byteArray.Length);
  gZipStream.Close();
  return msCompressed.ToArray();
}
Run Code Online (Sandbox Code Playgroud)

c# serialization gzipstream .net-3.5

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

为什么在finally块中睡眠时线程不会被中断

我一直在寻找MSDN,并且无法找到为什么Thread在finally块中睡眠时无法中断的原因.我试过中止没有成功.

有没有什么方法可以在finally块内睡觉时唤醒线程?

Thread t = new Thread(ProcessSomething) {IsBackground = false};
t.Start();
Thread.Sleep(500);
t.Interrupt();
t.Join();

private static void ProcessSomething()
{
    try { Console.WriteLine("processing"); }
    finally
    {
        try
        {
            Thread.Sleep(Timeout.Infinite);
        }
        catch (ThreadInterruptedException ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是MSDN声称线程可以在最终块中止:http://msdn.microsoft.com/en-us/library/aa332364(v = vs.71).aspx "线程可能会在最终阻塞时中止正在运行,在这种情况下,finally块被中止."

编辑 我发现Hans Passant评论是最佳答案,因为这解释了为什么Thread有时可以也不能在finally块中被中断/中止.那就是流程正在关闭的时候.谢谢

c# multithreading interrupted-exception

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

是否可以为整个应用程序启用ToolTipService.ShowOnDisabled = true

是否有任何方法可以启用ToolTipService.ShowOnDisabled = true整个应用程序,还是必须手动为我的WPF应用程序中的每个控件设置它?

我不认为重新设计每个控件是一个很好的解决方案.

c# wpf tooltip

8
推荐指数
1
解决办法
2333
查看次数

本地网络上的WCF初始化挂起20秒

我有使用basicHttpBinding的WCF服务.

当客户端和服务器在同一网络上时,它们的初始呼叫会持续大约30秒而不是平稳.

当我使用DNS通过互联网从客户端进行同样的呼叫时,它可以很好地工作,没有挂起.

客户端和服务器都是控制台应用程序 服务器正在运行Windows 7,有问题的客户端正在运行Windows Server 2008.同一网络上的两台计算机都使用其本地安全策略,因此没有域控制器.

关闭所有防火墙和防病毒软件并没有解决我的问题.

这是来自设置的日志,彼此相邻

09:33:05,252 [1] DEBUG ChannelFactoryManager: Created ClientChannel http://192.168.1.11:18762/DiagnosticService
09:33:05,263 [1] INFO  Program: WcfAppender.InitializeWcfAppender: 08:33:05
09:33:05,274 [1] INFO  Program: File.Copy(C:temptest.txt, O:test.txt, true): 08:33:05
09:33:05,298 [1] INFO  Program: GETTING DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:05
09:33:32,661 [1] INFO  Program: GOT DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:32
09:33:32,668 [1] INFO  Program: GETTING DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:32
09:33:32,680 [1] INFO  Program: GOT DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:32
09:33:32,693 [1] INFO  Program: File.Copy(C:temptest.txt, O:test.txt, true): 08:33:32
Run Code Online (Sandbox Code Playgroud)

当我从不同网络通过互联网点击同一台服务器时,这是日志:没有延迟:

09:36:56,500 [1] DEBUG ChannelFactoryManager: Created ClientChannel http://mydomain.com:18762/DiagnosticService
09:36:56,501 [1] INFO  Program: WcfAppender.InitializeWcfAppender: …
Run Code Online (Sandbox Code Playgroud)

c# wcf networking basichttpbinding

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

创建防火墙规则以c#编程方式打开每个应用程序的端口

我需要为我的应用程序打开特定端口.

我已尝试INetFwAuthorizedApplication为所有端口使用每个应用程序的规则.

fwMgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(app)
Run Code Online (Sandbox Code Playgroud)

或者,为所有应用程序打开一个端口INetFwOpenPort.

firewallManager.LocalPolicy.CurrentProfile.GloballyOpenPorts.Add(port)
Run Code Online (Sandbox Code Playgroud)

有没有办法以编程方式以编程方式为每个应用程序打开单个端口?我可以通过防火墙设置手动完成.

c# api port firewall windows-firewall

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

如何为所有按钮注册单个事件侦听器

如何在我的WPF应用程序中收听所有按钮点击.也许包括一些复选框左右,但理想情况下我不想有额外的事件处理程序.

我想收集初始统计数据,以了解人们如何使用我们的应用程序.我想确保不干涉任何其他事件处理功能.

在应用程序中,使用自己的按钮打开和关闭新窗口,因此我无法静态地执行此操作.

或者,有任何常用的方法来收集WPF应用程序的使用情况统计信息.

c# wpf event-handling

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

如何在 MSBuild 单元测试中访问 teamcity 配置参数

有没有办法在 MSBuild 单元测试中访问配置参数?

我将 teamcity 配置为每几个小时运行一次冗长的测试集。我时不时地想使用特定参数(字符串限制样本测试集)运行测试。我想在团队城市中单击“运行...”并为某个参数设置一个值,而不是检查对单元测试的更改。

这可能吗?

c# msbuild teamcity unit-testing

4
推荐指数
1
解决办法
2755
查看次数

从WindowsService如何从C#中找到当前登录的用户?

我在管理员帐户下运行Windows服务,我想知道谁是当前登录的用户.它将与当前运行的WindowService帐户不同.有没有简单的方法从c#中获取它?

它不是:System.Security.Principal.WindowsIdentity.GetCurrent()既不是System.Environment.UserName

谢谢

编辑

我感兴趣的是当前使用控制台会话登录的用户.谢谢jadarnel27

我对其他远程会话不感兴趣,因为这不是我的情况.

c# windows-services

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

使用带有一个或两个内存流的gZipStream会产生很大的不同

我肯定错过了一些非常明显的东西,但任何人都可以解释为什么在第二种情况下有更好的压缩率?!

案例1:压缩率非常低,有时甚至会增加尺寸.

using (var memoryStream = new System.IO.MemoryStream())
using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Compress))
{
  new BinaryFormatter().Serialize(gZipStream, obj);
  gZipStream.Close();
  return memoryStream.ToArray();
}
Run Code Online (Sandbox Code Playgroud)

案例2:更好的压缩,我没有得到规模增长.

using (MemoryStream msCompressed = new MemoryStream())
using (GZipStream gZipStream = new GZipStream(msCompressed, CompressionMode.Compress))
using (MemoryStream msDecompressed = new MemoryStream())
{
  new BinaryFormatter().Serialize(msDecompressed, obj);
  byte[] byteArray = msDecompressed.ToArray();

  gZipStream.Write(byteArray, 0, byteArray.Length);
  gZipStream.Close();
  return msCompressed.ToArray();
}
Run Code Online (Sandbox Code Playgroud)

我已经完成了镜像解压缩,在这两种情况下我都可以将它反序列化为源对象而不会出现任何问题.

以下是一些统计数据:

UncSize:58062085B,Comp1:46828139B,0.81%

UncSize:58062085B,Comp2:31326029B,0.54%

UncSize:7624735B,Comp1:7743947B,1.02%

UncSize:7624735B,Comp2:5337522B,0.70%

UncSize:1237628B,Comp1:1265406B,1.02%

UncSize:1237628B,Comp2:921695B,0.74%

c# compression memorystream gzipstream binaryformatter

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

如何从WPF窗口创建缩略图并将其转换为字节[],以便我可以坚持下去?

我想从我的wpf窗口创建缩略图,并希望将其保存到数据库中并稍后显示.有什么好的解决方案吗?

我已经开始使用RenderTargetBitmap,但我找不到任何简单的方法将它变成字节.

RenderTargetBitmap bmp = new RenderTargetBitmap(180, 180, 96, 96, PixelFormats.Pbgra32);
bmp.Render(myWpfWindow);
Run Code Online (Sandbox Code Playgroud)

使用user32.dll和Graphics.CopyFromScreen()对我来说并不好,因为它在这里是因为我想从用户控件做一个截图.

谢谢

c# wpf screenshot image

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