我有点嫉妒我从CSS和Ruby社区围绕CSS看到的创新.例如,请参阅:
那就是说,我的问题是双重的.这些库可以通过IronRuby和IronPython轻松"移植"到.NET,那么我可以在C#中编写MSBUILD任务或HTTP处理程序吗?
另外,我应该为此烦恼,还是.NET社区中的其他人已经在为此工作?
更新:自从我写这个原始问题以来,在这个领域的.NET社区中已经做了很多工作.查看以下为LESS,SASS甚至CoffeeScript提供帮助的工具:
我想在我的应用程序中捕获某些但不是全部的HttpWebRequest流量以进行调试.它是由IIS托管的Web服务.
我已阅读如何:配置网络跟踪.这很好用,但我不希望将跟踪指向文件,因为文件系统可能存在权限问题,数据敏感性等.我想直接捕获内存中的某些东西,我随后可以检查或加密和电子邮件.最好不要对app.config文件进行任何更改.
我尝试了以下内容,但显然我错过了将TextWriterTraceListener绑定到System.Net的步骤.如何将System.Net流量捕获到我的StringWriter中?
StringWriter sw = new StringWriter();
TextWriterTraceListener myListener = new TextWriterTraceListener(sw);
Trace.Listeners.Add(myListener);
HttpWebRequest req = (HttpWebRequest) WebRequest.Create("http://www.microsoft.com");
HttpWebResponse resp = (HttpWebResponse) req.GetResponse();
Stream s = resp.GetResponseStream();
byte[] buf = new byte[4096];
while (s.Read(buf, 0, buf.Length) > 0) ;
s.Close();
myListener.Flush();
sw.Flush();
Run Code Online (Sandbox Code Playgroud)
编辑:具体来说,我想在运行时做此等价的,不过我不想输出去network.log,我想它去我已经建立了用于此目的的字符串缓冲区.
<configuration>
<system.diagnostics>
<sources>
<source name="System.Net.Sockets" tracemode="includehex">
<listeners>
<add name="System.Net.Sockets" type="System.Diagnostics.TextWriterTraceListener" initializeData="network.log" />
</listeners>
</source>
</sources>
<switches>
<add name="System.Net.Sockets" value="Verbose"/>
</switches>
<trace autoflush="true" />
</system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud) 我正在使用a WriteableBitmap
来显示我自己处理的图像,每秒约20帧.
这个问题(WPF:显示快速变化图像的更有效方式?)
和这个问题(如何在没有大内存分配的情况下显示快速更新图像?)
表明最好的方法是使用a WriteableBitmap
.
该文档WriteableBitmap
表明调用WritePixels()
UI线程将导致呈现线程重绘图像:
MSDN文档:
UI线程将内容写入后台缓冲区.渲染线程从前端缓冲区读取内容并将其复制到视频内存.使用更改的矩形区域跟踪对后缓冲区的更改.
<snip />
当更新发送到呈现线程时,呈现线程将更改的矩形从后缓冲区复制到前台缓冲区.渲染系统控制此交换以避免死锁和重绘伪像,例如"撕裂".
我在后台线程上处理我的图像,然后Dispatcher.BeginInvoke()
用来调用WritePixels()
,以确保WritePixels()
在UI线程上调用它.
我发现撕裂仍然发生WriteableBitmap
,并且在我正在研究的应用程序中,它看起来很糟糕(它是一个医学成像应用程序).有什么我能做的吗?
这不起作用:
Sub X()
Dim A As Access.Application
Set A = CreateObject("Access.Application")
'Do Stuff
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,这个DOES工作:
Sub X()
Dim A As Object
Set A = CreateObject("Access.Application")
'Do Stuff
End Sub
Run Code Online (Sandbox Code Playgroud)
我知道他们几乎做了同样的事情,但任何人都可以告诉我如何制作access.application对象?我应该补充一点,我有Crystal Reports 11,在我上次升级时,它可能有'未注册'的一些VBA DLL.
(2009-06-29更新)
在回答前两个问题时,我正在使用MS Access VBA来控制其他一些Access和Excel文件.由于这只能在我的本地机器上运行,我可以保证始终安装Access.我还引用了"Microsoft Access 11.0对象库"(MSACC.OLB).
我知道有解决方法,即在编码时使用早期绑定,并在运行时切换到后期绑定,我只是不明白为什么早期绑定方法在我的机器上根本不起作用(当然,代码工作原理)在Access的另一台机器上很好.
我想使用MSBUILD来检查站点中所有页面的呈现HTML和CSS的有效性,并打破错误的构建.
任何人都可以推荐一种在自动构建中验证HTML和CSS的策略吗?现在有什么任务可以做到这一点吗?
我如何将其IEnumerable<KeyValuePair<MyType, IEnumerable<OtherType>>>
转换为相同类型的新序列,除了我只想要First()
在value(IEnumerable<OtherType>
)中.像这样的东西(伪代码):
var toReturn = from kv in source
let k = new KeyValuePair(kv.Key, kv.Value.First())
select k;
Run Code Online (Sandbox Code Playgroud) 在代码中,有没有办法确定您正在运行的"解决方案配置"?例如,'Debug'与'Release?
我有一个服务,我喜欢在Debug中的IDE中测试,现在我有bool我设置了哪个运行'service'如果设置为true(然后使用OnStart方法运行我的'main'方法),如果它设置为false我只运行'main'方法.这很好但我经常忘记在测试后重置bool然后当我去安装服务时它失败了我必须返回,重置bool,重新编译等.
如果我能以编程方式确定我在Debug中的IDE中运行,那么我可以解决这个问题.
编辑: 在考虑这一点时,我想最终我真正需要的是确定我是否正在使用ide中的"播放"应用而不是配置.这将允许我在调试或其他配置中编译.
最简单的解决方案似乎检查'System.Diagnostics.Debugger.IsAttached'
我是否需要删除代码隐藏*.cs文件才能在ASP.NET中使用JQuery?
如果是的话,我为什么要那样做?
我正在编写各种例程,我正在尽力保持整洁和重构.
我正在创建的方法开始看起来与此代码类似:
-(IBAction)buttonPress:(id)sender {
// Create Document Shopping List with this document
[self doSomething:&error];
if(error) {
[NSApp presentError:&error];
return nil;
}
[self doSomethingElse:&error];
if(error) {
[NSApp presentError:&error];
return nil;
}
[self doYetSomethingElse:&error];
if(error) {
[NSApp presentError:&error];
return nil;
}
}
Run Code Online (Sandbox Code Playgroud)
我喜欢NSError,但这似乎是处理我所有错误的非常笨拙的方式.
我对替代方法的一些想法:
a)错误检查可以内置到doSomething,doSomethingElse等方法中,但是如果不对返回值进行某种检查,我将无法退出按钮按下方法,这会导致我回到类似的结构.
b)我可以将NSError设置为观察到的键值,但是关于这一点的东西感觉非常错误.我非常清楚KVO滥用的可能性,所以我试图在没有它的情况下做任何事情.
当然我错过了一些非常基本的东西吗?有没有一种模式可以帮助我?或者这个结构好吗?