我经常在C++中使用的东西是让一个类通过构造函数和析构函数A处理另一个类的状态入口和退出条件,以确保如果该范围内的某些东西抛出异常,那么B将具有已知状态范围已退出.就首字母缩略词而言,这不是纯粹的RAII,但它仍然是一种既定的模式.BA
在C#中,我经常想做
class FrobbleManager
{
...
private void FiddleTheFrobble()
{
this.Frobble.Unlock();
Foo(); // Can throw
this.Frobble.Fiddle(); // Can throw
Bar(); // Can throw
this.Frobble.Lock();
}
}
Run Code Online (Sandbox Code Playgroud)
这需要像这样做
private void FiddleTheFrobble()
{
this.Frobble.Unlock();
try
{
Foo(); // Can throw
this.Frobble.Fiddle(); // Can throw
Bar(); // Can throw
}
finally
{
this.Frobble.Lock();
}
}
Run Code Online (Sandbox Code Playgroud)
如果我想保证退货Frobble时的状态FiddleTheFrobble.代码会更好
private void FiddleTheFrobble()
{
using (var janitor = new FrobbleJanitor(this.Frobble))
{
Foo(); // Can throw
this.Frobble.Fiddle(); // Can throw …Run Code Online (Sandbox Code Playgroud) 当它部署到64位Windows 2008服务器盒时,我们在ASP.NET MVC应用程序的某些页面上收到上述错误.它在我们的开发机器上工作正常,尽管它们是32位XP.只是想知道是否有人曾经遇到过此事,并有任何建议吗?详情如下:
坏二进制签名.(HRESULT异常:0x80131192)
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.Runtime.InteropServices.COMException:错误的二进制签名.(HRESULT异常:0x80131192)
所有项目都设置为为任何CPU编译,并在发布模式下编译.ASP.NET网站已预编译,预编译版本位于64位Windows 2008 TeamCity构建代理上.提前致谢.
编辑
我们仍然受此困扰.我使用corflags.exe查看了网站bin目录中的所有二进制文件.没有设置32BIT标志,并且所有的CorFlags值都为9,除了Antlr3.Runtime.dll,其值为1.该问题仅影响某些页面,似乎是使用FluentValidation的那些(包括FluentValidation.Mvc)和FluentValidation.xValIntegration程序集).当使用corflags.exe进行检查时,这些都不会显示任何异常,并且ildasm没有显示奇怪的依赖关系.
在本地构建(32位Windows XP)时,该站点部署并运行正常.在构建代理(64位Windows 2008 Server)上构建时,站点会显示这些错误.该站点以集成管道模式运行,未设置为32位.
堆栈跟踪是:
[COMException (0x80131192): Bad binary signature. (Exception from HRESULT: 0x80131192)]
ASP.views_user_newinternal_aspx.__RenderContent2(HtmlTextWriter __w, Control parameterContainer) in e:\TeamCity\buildAgent\work\605ee6b4a5d1dd36\...Admin.Mvc\Views\User\NewInternal.aspx:53
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +115
ASP.views_shared_site_master.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in e:\TeamCity\buildAgent\work\605ee6b4a5d1dd36\...Admin.Mvc\Views\Shared\Site.Master:26
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +115
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +240
System.Web.UI.Page.Render(HtmlTextWriter writer) +38
System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) +94
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4240
Run Code Online (Sandbox Code Playgroud) 我知道你不能做跨域的ajax请求,除非你使用'代理'一个服务器.
但是,如果我从server1.example.com向server2.example发出了ajax请求,那么它是否会起作用,即使它位于example.com的同一个域中?
我很确定像YouTube这样的网站会向不同的服务器发出ajax请求.例如来自youtube.com的请求到vs1022.youtube.com等.
对此的任何澄清都是极好的.感谢您的时间.
在Linq中是否有一个方法可用于构建SQL字符串,如"... where(a = 1)OR(a = 2)"?
我很难绕过业务对象或更具体地说是业务对象集合.
这是我正在尝试做的一个简单示例.
如果我有一个事件对象,则此对象可以包含许多人,并且每个Person对象都可以有多个注释.没有Person对象,Notes不能存在,如果没有Incident对象,Person对象就不能存在.
如果我有公共列表<Note> notes = new List <Note>(),则事件中的Person可以使用ADD和REMOVE等方法.我假设如果我要在Notes集合上调用这些方法,它将只是从列表中删除它,但不执行任何代码来实际添加/更新/删除数据源中的员工.这让我相信我不应该使用List而是其他什么?
这也引出了另一个问题.实际数据库CRUD操作应驻留在何处.Note对象是否应该有自己的CRUD,或者Person对象应该对它负责,因为它没有它就不存在?
我有点迷失方向,我想让这部分正确,因为它将成为该计划其余部分的模板.
我遇到了@ font-face的问题.它实际上在Safari,Internet Explorer 7+和Firefox for Windows上完美运行,但在firefox for mac上完全没有.
我正在使用防弹@ font-face文章中的代码
这是我的代码:
@font-face {
font-family: "QlassikMediumRegular";
src: url("../fonts/Qlassik_TB.eot");
src: local("Qlassik Medium Regular"), local("QlassikMedium"), url("../fonts/Qlassik_TB.ttf") format("truetype")
}
@font-face {
font-family: "QlassikBoldRegular";
src: url("../fonts/QlassikBold_TB.eot");
src: local("Qlassik Bold Regular"), local("QlassikBold"), url("../fonts/QlassikBold_TB.ttf") format("truetype")
}
Run Code Online (Sandbox Code Playgroud)
这是我的网站的链接:链接文字
好吧假设我有php页面有这个名字name.php?get =并且得到了变量名为get ok我怎么能让它看起来像那个名字?get =
我们的搜索页面的网址是这样建立的:
http://www.example.com/results/name/John/city/Miami/gender/Male
这将显示迈阿密的每个男性名叫约翰.
当其中一个过滤器留空时,url将是这样的:
http://www.example.com/results/name/John/city//gender/Male
所以url中有两个斜杠.
Outlook似乎不喜欢这样.当您单击第二个URL时,它会删除两个斜杠中的一个.这留下了这样的网址:
http://www.example.com/results/name/John/city/gender/Male
人们在城市"性别"中命名约翰.
解决这个问题的最佳方法是什么?
我们有2个独立的产品需要通过Web服务相互通信.支持API的自动化的最佳实践是什么?
我从2004年开始这篇文章声称没有实际标准,只有最佳实践.更好的解决方案?你如何解决WS版本问题?
class SystemAClient{
SystemBServiceStub systemB;
public void consumeFromB(){
SystemBObject bObject = systemB.getSomethingFromB(new SomethingFromBRequest("someKey"));
}
}
Run Code Online (Sandbox Code Playgroud)
class SystemAService{
public SystemAObject getSomethingFromA(SomethingFromARequest req){
return new SystemAObjectFactory.getObject(req);
}
}
Run Code Online (Sandbox Code Playgroud)
版本1
class SystemAObject{
Integer id;
String name;
... // getters and setters etc;
}
Run Code Online (Sandbox Code Playgroud)
版本2
class SystemAObject{
Long id;
String name;
String description;
... // getters and setters etc;
}
Run Code Online (Sandbox Code Playgroud)
版本1
class SomethingFromARequest {
Integer requestedId;
... // getters and setters etc;
}
Run Code Online (Sandbox Code Playgroud)
版本2
class …Run Code Online (Sandbox Code Playgroud) 我对WPF很新.我经常发现自己正在努力获得一堆子控件组合宽度以匹配给定的父容器.如下所示:
<ListBox x:Name="BrugereListBox" Grid.Column="0" Grid.Row="3" DataContext="{DynamicResource Brugere}"
ItemsSource="{Binding}"
PreviewMouseLeftButtonDown="BrugereListBox_MouseLeftButtonDown"
PreviewMouseMove="BrugereListBox_PreviewMouseMove"
>
<ListBox.ItemTemplate >
<DataTemplate >
<Border BorderBrush="Black" BorderThickness="1" Margin="2">
<StackPanel Orientation="Vertical" IsEnabled="True"
PreviewMouseLeftButtonDown="StackPanel_PreviewMouseLeftButtonDown">
<StackPanel Orientation="Horizontal" >
<Label>Navn</Label>
<TextBox Text="{Binding Name}"></TextBox>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label>Password</Label>
<TextBox Text="{Binding Password}"></TextBox>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label>Email</Label>
<TextBox Text="{Binding Email}"></TextBox>
</StackPanel>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我有兴趣获得stackpanel的子节点的宽度:
<StackPanel Orientation="Horizontal" >
<Label>Navn</Label>
<TextBox Text="{Binding Name}"></TextBox>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
匹配的宽度
<ListBox x:Name="BrugereListBox"
Run Code Online (Sandbox Code Playgroud)
像这样的场景的任何通用解决方案?
.net ×2
c# ×2
64-bit ×1
ajax ×1
architecture ×1
asp.net-mvc ×1
controls ×1
cross-domain ×1
firefox ×1
font-face ×1
interop ×1
javascript ×1
linq ×1
macos ×1
outlook ×1
parent ×1
php ×1
raii ×1
url ×1
versioning ×1
web-services ×1
where-clause ×1
width ×1
wpf ×1