我正在尝试使用"ValidationRule"类为必填字段的文本添加验证.我有类的以下实现
using System.Windows.Controls;
using System.Globalization;
public class RequiredField : ValidationRule
{
private String _errorMessage = String.Empty;
public string ErrorMessage
{
get { return _errorMessage; }
set { _errorMessage = value; }
}
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
var str = value as string;
if (String.IsNullOrEmpty(str))
{
return new ValidationResult(true, this.ErrorMessage);
}
return new ValidationResult(true, null);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的XAML中,我有以下实现:
<TextBox Grid.Row="1" Grid.Column="3" Name="txtUserName" Height="23" VerticalAlignment="Top" Width="70" Grid.ColumnSpan="2" HorizontalAlignment="Left" MaxLength="50">
<TextBox.Text>
<Binding Path="Username" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validators:RequiredField ErrorMessage="username is required." …Run Code Online (Sandbox Code Playgroud) 我正在浏览Decorator设计模式,看到每个第二个示例都使用了一个抽象装饰器类,并且还实现了要为其创建装饰器的类的接口.我的问题是,
是否有必要拥有一个抽象装饰器类,然后定义具体的装饰器?
我创建了一个样本,我认为它可以类似于上面提到的Abstract类方法所实现的功能.
public interface ICarModel
{
Int32 Price { get; }
Int32 Tax { get; }
}
public class BaseModel : ICarModel
{
public Int32 Price
{
get { return 50000; }
}
public Int32 Tax
{
get { return 5000; }
}
public String GetBaseCarDetails()
{
return "Base car model Price is : " + this.Price
+ " and Tax is : " + this.Tax;
}
}
public class LuxuryModel
{
ICarModel _iCarModel;
public LuxuryModel(ICarModel iCarModel) …Run Code Online (Sandbox Code Playgroud)我对容器化非常陌生。我使用默认模板在 Visual Studio 中创建了一个新的 .net core 3.1 Rest api。我没有更改默认模板中的任何内容。当我使用 F5 运行它时,它在浏览器中运行良好,网址为 https://localhost:44332/weatherforecast。现在,我尝试使用以下 Dockerfile 配置在 docker 容器中运行它:
来自 mcr.microsoft.com/dotnet/aspnet:3.1
复制 bin/Release/netcoreapp3.1/publish App/
工作目录/应用程序
曝光 5000
暴露 443
ENTRYPOINT [“dotnet”,“CoreRestApi.dll”]
我能够生成 docker 映像和容器。容器也开始启动。但是,当我尝试浏览 URL https://localhost/weatherforecast 或 http://localhost:5000/weatherforecast 来访问 api 时,它什么也不显示。
应用程序中Main方法的代码如下:
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
Run Code Online (Sandbox Code Playgroud)
docker 桌面显示如下:
我在这里错过了任何步骤吗?