是否可以创建一个像System.Diagnostics.Debug
类一样执行调试帮助的方法?
我正在寻找一种方法来构造一个方法,该方法在由定义的DEBUG条件编译符号编译的程序集调用时,导致操作,并且在没有定义符号的程序集调用时是无操作.
如果可能的话,我希望对调试方法的调用可以增加最小的开销或增加程序集的发布版本的大小.
为了澄清,调试方法应该在以发布模式编译的程序集中.对方法的调用应仅在从具有在方法调用范围中定义的DEBUG符号的程序集调用时生成操作.
我有一个数据库模式,其中外键名称的约定是:
ForeignTable.Name + ForeignTable.PrimaryKeyName
Run Code Online (Sandbox Code Playgroud)
因此,对于Child
引用Parent
具有名为主键列的表的表Key
,外键将如下所示ParentKey
.
有没有办法在我的Fluent NHibernate映射中创建这个约定?
目前我正在使用这样的ForeignKeyConvention
实现:
public class ForeignKeyNamingConvention : ForeignKeyConvention
{
protected override string GetKeyName(PropertyInfo property, Type type)
{
if (property == null)
{
// Relationship is many-to-many, one-to-many or join.
if (type == null)
throw new ArgumentNullException("type");
return type.Name + "ID";
}
// Relationship is many-to-one.
return property.Name + "ID";
}
}
Run Code Online (Sandbox Code Playgroud)
对于所有以"ID"为主键的类型,这完全符合我的要求.我想要做的是将常量"ID"替换为所引用类型的主键的名称.
如果使用Fluent NHibernate目前无法做到这一点,我很乐意接受这个答案.
我有一个使用Nhibernate和Linq2SQL的复杂服务器应用程序.每天大约3次Linq2sql代码生成"值不能为空"的异常.一旦发生这种情况,代码将始终生成异常.诊断和解决根本原因将是漫长的并且将引入不稳定性.
当前的"修复"是每小时重新调整应用程序池.但是,从问题发生到恢复发生之前,服务已经停止.我希望Web服务捕获异常并回收它自己的应用程序池.我希望所有其他Web请求在完成之前得到尊重.
编辑:故障位于负载平衡Web场上的两个服务器上.客户端不会因为此代码崩溃而从一台服务器切换到另一台服务器.
在这篇MSDN文章 http://msdn.microsoft.com/en-us/library/ms132123.aspx中, 它讨论了Class Equalitycomparer并有一个例子.在这个关于比较它的例子中它有这个类 -
class BoxSameDimensions : EqualityComparer<Box>
{
public override bool Equals(Box b1, Box b2)
{
if (b1.Height == b2.Height & b1.Length == b2.Length
& b1.Width == b2.Width)
{
return true;
}
else
{
return false;
}
}
public override int GetHashCode(Box bx)
{
int hCode = bx.Height ^ bx.Length ^ bx.Width;
return hCode.GetHashCode();
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白行hCode = bx.Height ^ bx.Length ^ bx.Width;
有人可以解释一下吗?为什么xor?
我想了解在进行网络上传时发生的事情.
我想其中一个:
我试图上传一个非常大的文件,并在接收上传的方法的第一行放置一个断点.我已经看到浏览器如何加载大量的时间......但断点仍未被击中,一段时间后断点被击中.
我想理解这一点,因为在最糟糕的情况下,如果我允许大量上传,它们可能会在某些时候炸毁服务器内存.
如果我上传2Gb文件会怎么样?(考虑到Web服务器/应用程序接受该长度)是否需要2Gb的服务器内存?
干杯.
考虑一下我对异步委托主题的看法.
如果我想以异步方式异步调用方法,这是一种合适的方法吗?
Action action = DoSomething;
action.BeginInvoke(action.EndInvoke, null);
Run Code Online (Sandbox Code Playgroud)
该DoSomething()
方法捕获所有异常并在内部处理它们.
电话EndInvoke
适当吗?需要?
是否有更清晰的方法来实现相同的行为?
我想在用户点击指向另一个页面的链接时执行简单的AJAX get请求.AJAX调用是完成还是会停止,因为用户离开了发起AJAX请求的页面?我并不关心get请求的响应.
有什么想法或想法吗?
我想知道一点关于namespace
和using
C++基本上我想知道差异并弄清楚如何以最好的方式使用它.
我看到它有(至少)三种方法来解决一个类名,我不知道如何选择它们:
using namespace <namespace>
using <namespace>::<what_to_use>
<namespace>::<what_to_use> <use_it>
我想知道优势,特别是如果有一种或另一种方式涉及性能,如果它只是语法和偏好的问题,或者是否有其他事情我没有考虑过这个.
我正在运行LocalDB来开发我的应用程序,并希望看到我的应用程序从其各种组件执行的SQL语句.我可以使用一种工具来捕获这些语句吗?
我的问题如下。来自网络背景,我没有问题可以做到这一点,但在 Python 桌面应用程序中,我真的看不出什么是根据 MVC 模式组织代码的最佳方式。
我想根据用户输入创建一个窗口,当按下按钮时,它会显示数据库中可用的类似条目。窗户是我的看法。
所以基本上这些是关系:
1)通讯控制器 --> 查看
控制器有一个视图实例,可以使用它公开的方法,例如 view.show_data()。我认为这是要走的路。
# Controller
my_view = View()
...
my_view.show_data(whatever_data)
Run Code Online (Sandbox Code Playgroud)
2)通讯视图--> 控制器
当用户插入一些文本时,必须触发控制器中的一个方法,以便它可以向模型询问数据库中的必要数据。问题是我不知道视图告诉控制器它必须触发那个方法的最佳方式是什么。
我的第一个想法是将控制器的引用传递给视图,并在视图上绑定事件,如下所示:
# Controller
my_view = View(self)
my_model = Model()
...
def on_user_input(self):
# process the input
user_input = ...
self.my_model.method_to_get_info(user_input)
Run Code Online (Sandbox Code Playgroud)
和观点:
# View
def __init__(self, controller):
self.controller_reference = controller
self.launch_gui()
self.config_binds()
def launch_gui(self):
# ... configure all the GUI itself
self.button = ...
def config_binds(self):
self.button.Bind(wx.EVT_BUTTON, self.controller_reference.on_user_input())
Run Code Online (Sandbox Code Playgroud)
但我认为这种“闭环”关系并不是一个非常干净的解决方案。视图在控制器中被引用,控制器在视图中被引用。我认为它在视图和控制器之间建立了紧密的关系。
有什么方法可以做到这一点?