我有2节课
Public Class Shipper
Public Property ShipperID As Long
Public Property CreateDate As DateTime
Public Property ShipperCode As String
Public Property ShipperName As String
Public Property ShippingMethods As List(Of ShippingMethod)
Public Class ShippingMethod
Public Property ShippingMethodID As Long
Public Property ShipperID As Long
Public Property CreateDate As DateTime
Public Property ShipppingMethod As String
Public Property ShipppingMethodCode As String
Run Code Online (Sandbox Code Playgroud)
我正在尝试搜索托运人名单为空白且托运人姓名不为空白的托运人名单 - 我得到了
Dim oListShipper As List(Of Shipper) = GetAllShippers()
Dim oListShipperRet As List(Of Shipper) = _
oListShipper.FindAll(Function(c) (c.ShipperCode = "" And …Run Code Online (Sandbox Code Playgroud) 我正在为网站创建密码重置功能.必须实现密码重置的第一步:
我有服务类,它实现了公共方法 - RequestPasswordReset,这个方法非常具有程序性:
public void RequestPasswordReset(string email)
{
if(!IsValidEmail(email))
{
throw new ArgumentException("email");
}
var user = this.repository.FindByEmail(email);
if(user != null)
{
user.PasswordResetToken.Set(this.tokenGenerator.NewToken());
this.emailService.Send(this.from,
user.Email,
"Password reset",
"Your reset url: http://mysite.com/?t=" +
user.PasswordResetToken.Value);
}
else
{
this.emailService.Send(this.from,
user.Email,
"Requested password reset",
"Someone requested password reset at http://mysite.com");
}
}
Run Code Online (Sandbox Code Playgroud)
此方法违反单一责任原则 - 它检查用户是否存在,重置用户令牌,发送电子邮件.
这种解决方案的主要问题是,如果我需要添加额外的步骤,我必须为RequestPasswordReset方法和方法添加实现变得越来越复杂.例如,其他步骤可以是检查用户是否已在另一个相关系统中注册,我可以建议他在我的系统中创建新帐户或为他创建用户帐户.
我正在研究Command模式 - 将服务类重构为单独的命令可能是好的,而RequestPasswordReset可能是这些命令之一.但它并没有解决RequestPasswordReset方法中的步骤的主要问题.
我也在关注责任链模式 - 按顺序处理步骤会很好,但我不知道如何使用它来处理控制流程 - 应该实现的不同条件.此外,看起来每个处理程序应该执行类似的操作,并且不清楚整个控制流如何更改.
重构这样的程序代码的最佳方法是什么?
有没有办法拦截方法执行并取消它?我只是找到了一种Invoke方法来使用Microsoft.Practices.Unity和从方法中抛出异常ICallHandler,但是在Invoke方法实现上,我只能返回getNext()(input, getNext);.
这是代码:
public class TestHandler : ICallHandler
{
public int Order { get; set; }
public IMethodReturn Invoke(IMethodInvocation input,
GetNextHandlerDelegate getNext)
{
Console.WriteLine("It's been intercepted.");
// Here... please Lord, tell me I can cancel it, I'm a good person.
return getNext()(input, getNext);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个DateTimePicker显示的周数,如此处所示(代码项目示例).
除了一个小细节外,它的效果相当不错; 尝试选择日期时弹出的日历尺寸不正确.如您所见,日历区域有点"狭窄",尤其是沿着右边缘.

我可以在这里单击右下角,然后将其拖出一点 - 只需将其展开以使其看起来正确:

我似乎无法找到任何方法强制日历从一开始就是正确/完整的大小,或调整它的大小.任何想法将不胜感激.
在提交表单之前,我需要测试总和(txtA + txtB)是否大于100.是否可以使用a来执行此操作CustomValidator,因为我不知道是否可以在controltovalidate中选择2个文本框
<asp:TextBox ID="txtA" runat="server"></asp:TextBox>
<asp:TextBox ID="txtB" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator2"
runat="server"
ErrorMessage="CustomValidator" />
<asp:Button ID="Button1" runat="server" Text="Button" />
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在使用Windows应用商店应用并尝试使用多行和滚动条创建一个文本框.
我假设这应该像在WPF中一样容易实现.
我怎样才能做到这一点?非常感谢!!
我想确保 C# 字符串不包含特定字符。
我正在使用string.IndexOfAny(char[]),在我看来,Regex 在这项任务中会比较慢。有没有更好的方法来实现这一点?速度在我的应用程序中至关重要。
我正在编写一个Web服务,用于检查用户是否存在于Active Directory中以及是否启用了用户帐户.一旦检查完毕,我就会继续验证他们的用户帐户.一旦他们成功输入用户名和密码,我想得到GUID或NativeGuid我正在验证的人.我想使用GUID或NativeGUID在SQL Server数据库中建立一个关系.
这是我正在采取的方法:
public string isAuthenticated (string serverName, string userName, string pwd)
{
string _serverName, _userName, _pwd;
_serverName = serverName;
_userName = userName;
_pwd = pwd;
string message;
if (DoesUserExist (_userName) == true)
{
if (isActive(userName) == true)
{
try
{
DirectoryEntry entry = new DirectoryEntry(_serverName, _userName, _pwd);
object nativeObject = entry.NativeObject;
//issue is here
string GUID = entry.Guid.ToString();
string GUIDID = entry.NativeGuid;
//end of issue
message = "Successfully authenticated";
} …Run Code Online (Sandbox Code Playgroud) 我正在开发一个解决方案,其中多个 SQL 和 PL/SQL 脚本通过 SQL*Plus 以批处理方式一起运行。
我在脚本中的相关点声明SET ECHO OFF;和SET ECHO ON;以输出相关代码。
目前输出看起来像这样:
SQL> DECLARE
2 ct number := 0;
3 ctChanges number := 0;
4
5 BEGIN
6 select count(*) into ct from ...
7 (...rest of code block...)
"some specific status message"
Commit executed.
Run Code Online (Sandbox Code Playgroud)
我们将此输出作为运行日志保存在我们的构建环境中,但也可以作为纯文本文件访问它。
然而,这种格式的一个缺点是,如果我想复制代码的某个部分并在 IDE(如 Toad 或 SQL Developer)中再次运行它,则很难排除行号。
是否可以告诉 SQL*Plus 输出上述代码,但不包括行号?
我正在尝试编写一个自定义验证属性,该属性将有条件地要求基于模型的布尔属性的字段.
我有我的属性实现IClientValidatable.我有要检查的属性的名称,但我不知道如何获取目标属性的客户端ID.
public IEnumerable<ModelClientValidationRule>
GetClientValidationRules(ModelMetadata metadata,
ControllerContext context)
{
var clientTarget = ?????;
var rule = new ModelClientValidationRule()
{
ErrorMessage =
FormatErrorMessage(metadata.DisplayName ?? metadata.PropertyName),
ValidationType = "requiredif"
};
rule.ValidationParameters["target"] = clientTarget;
yield return rule;
}
Run Code Online (Sandbox Code Playgroud)
javascript:
$.validator.addMethod("requiredif", function (value, element, target)
{
//check on value of target
});
$.validator.unobtrusive.adapters.addSingleVal("requiredif", "target");
Run Code Online (Sandbox Code Playgroud)
如何获取目标属性的客户端ID,以便客户端javascript可以检查值?
c# ×7
validation ×2
vb.net ×2
.net ×1
aop ×1
asp.net ×1
interceptor ×1
lambda ×1
linq ×1
logging ×1
oracle ×1
performance ×1
plsql ×1
refactoring ×1
sql ×1
sqlplus ×1
string ×1
web-services ×1
windows-rt ×1
winforms ×1
xaml ×1