我有一个定义一些事件的内部接口和一个实现接口的示例类:
internal interface IMyEvents
{
event EventHandler MyEvent;
}
public class MyClass : IMyEvents
{
internal event EventHandler MyEvent;
public void DoSomething()
{
if (MyEvent != null) MyEvent(this, new EventArgs());
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,我收到以下错误:
error CS0737: 'MyClass' does not implement interface member '.IMyEvents.MyEvent'. 'MyClass.MyEvent' cannot implement an interface member because it is not public.
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?这是一个内部界面,所以我不明白为什么事件必须公开.
根据Amazon 的文档,我无法手动将 EC2 实例加入 Amazon Web Services 中的目录服务简单 AD 。
foo.bar.com。tracert我的 IP 给出了我公司的域名)。tracert访问简单 AD 的 IP 地址(它甚至没有到达第一跳)tracert访问互联网上的任何内容(与上面相同)。arp -a显示了 Simple AD 的 IP,因此看来我的实例已收到来自 Simple AD 的流量。这是我收到的错误消息:
当 DNS 查询用于查找域“aws.bar.com”的 Active Directory 域控制器 (AD DC) 的服务位置 (SRV) 资源记录时,发生以下错误:
错误是:“此操作返回,因为超时期限已过。” (错误代码 0x000005B4 ERROR_TIMEOUT)
该查询针对 _ldap._tcp.dc._msdcs.aws.bar.com 的 SRV 记录
此计算机用于名称解析的 DNS 服务器没有响应。此计算机配置为使用具有以下 IP 地址的 DNS …
不幸的是,似乎没有string.Split(字符串分隔符),只有string.Split(char speparator).
我想基于一个多字符分隔符,即VB6分解我的字符串.是否有一个简单的(即,不是通过引用Microsoft.VisualBasic或不得不学习RegExes)的方式在c#中执行此操作?
编辑:使用.NET Framework 3.5.
我有一个包含许多项目的项目,即使在一台相当不错的机器(8GB RAM、混合固态硬盘、Core 2 Duo 处理器)上,启用 ReSharper 后性能也很糟糕。
我能够找到如何暂停 ReSharper,但当我关闭 ReSharper 时,Visual Studio 的默认键绑定(例如 Ctrl-[逗号] 导航到类型)似乎不起作用。
禁用 ReSharper 时如何恢复默认键绑定(启用 ReSharper 时如何恢复 ReSharper 绑定)?
我的许多应用程序服务层方法都是这样的:
public class Command
{
public int Id { get; private set; }
}
public class Repository
{
public Entity Load(int id)
{
// the usual stuff here
}
}
public class AppService
{
public void Execute(Command command)
{
var entity = new Repository().Load(command.Id);
if (entity == null)
{
// what type of exception do I throw here?
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果客户端为无法找到的实体发出命令,我应该抛出什么类型的异常? MSDN上的InvalidOperationException规范指的是"对象状态"无效.看起来这里并不适用 - 这真的只是一个糟糕的命令.
有什么建议?
在构建过程中,我们运行sqlldr用一些示例数据填充数据库。在sqlldr接触的每个表上,运行sqlldr后,将禁用外键。
根据此Ask Tom帖子:
sqlldr将仅禁用与其他表相关的约束(例如:外键),而不禁用主键。
SQLLDR将仅重新启用IT禁用的约束,而不是您自己创建的约束。
我认为这意味着应该启用我的外键。
我们所有的sqlldr控制文件都与此类似:
options (direct=true, rows=20000)
load data
infile "clinical_code.txt"
append
into table clinical_code
fields terminated by "|"
trailing nullcols
Run Code Online (Sandbox Code Playgroud)
该rows计数有意大于数据文件中的行数,因为如果较小,它将破坏我的主键。
为什么sqlldr不像文档所示暗示那样重新启用我的外键?
如果需要,我可以编写SQL重新启用索引。我想知道为什么会这样。
使用传统的加载路径是一种不错的选择,但是这将使我们的构建过程增加2分钟的时间,如果可能的话,我希望避免这种情况。
我有一个控件,有一堆字段,我希望用户能够配置.
我原来有这个:
public bool Phone1Visible;
public bool Phone1Required;
Run Code Online (Sandbox Code Playgroud)
然后意识到我不想处理必须再次验证隐藏的必填字段,所以我想出了这个:
public enum YOUR_NAME_HERE
{
Hidden,
Optional,
Required
}
Run Code Online (Sandbox Code Playgroud)
你会说这个枚举的名字是什么?我在想"FieldCriticality",但这听起来有点罗嗦.
建议欢迎.
ASP.NET MVC 3不引人注目的客户端验证需要哪些文件才能工作?
它与jQuery 1.6.3兼容吗?
asp.net-mvc jquery jquery-plugins jquery-validate asp.net-mvc-3
当我运行此查询时,Oracle给了我一个错误(ORA-00907:缺少右括号):
select *
from reason_for_appointment
where reason_for_appointment_id in
(
select reason_for_appointment_id
from appointment_reason
where appointment_id = 11
order by appointment_reason_id
)
Run Code Online (Sandbox Code Playgroud)
但是,当我只运行子查询时,没有错误.
任何人都可以解释问题是什么?
我们在svn中有某些目录,在发布后不应该被触及.虽然我可以在目录中的每个文件上放置svn:needs-lock,但我想防止添加和删除以及修改.
有没有办法做到这一点?
如果我正在序列化一个对象集合,那么保证集合实现的最小类型是什么(而不是表达式的结果)?
例如.这不应该是可能的:
var message = new MyMessage {
Recipients = someCollection.Select... // <- this can't be deserialized without calling ToList()
}
Run Code Online (Sandbox Code Playgroud)
我知道IList会做这个工作,但想知道这是否是最低要求.
.net ×3
c# ×3
oracle ×2
.net-3.5 ×1
asp.net-mvc ×1
c#-3.0 ×1
enums ×1
jquery ×1
ora-00907 ×1
plsql ×1
sql-loader ×1
svn ×1
tortoisesvn ×1
windows ×1