小编Tec*_*Jay的帖子

使用ValidationRule类进行WPF验证

我正在尝试使用"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)

wpf xaml

7
推荐指数
1
解决办法
8036
查看次数

装饰者模式的例子

我正在浏览Decorator设计模式,看到每个第二个示例都使用了一个抽象装饰器类,并且还实现了要为其创建装饰器的类的接口.我的问题是,

  1. 是否有必要拥有一个抽象装饰器类,然后定义具体的装饰器?

  2. 我创建了一个样本,我认为它可以类似于上面提到的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)

c# design-patterns

7
推荐指数
1
解决办法
1万
查看次数

docker 容器中的.net core rest api 未运行

我对容器化非常陌生。我使用默认模板在 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 桌面显示如下:

在此输入图像描述

我在这里错过了任何步骤吗?

docker asp.net-core

2
推荐指数
1
解决办法
4246
查看次数

标签 统计

asp.net-core ×1

c# ×1

design-patterns ×1

docker ×1

wpf ×1

xaml ×1