您当前的位置:首页 >> 装修攻略

如何在C#语言中拟定架构规则

2023-03-16 12:16:02

所。基本概念应与其系统设计配置文件同名。

那时候在Models系统设计配置文件中所成立一个名为BaseModel的类并放入此表文档:

脱氧核糖核酸

public abstract class BaseModel

{

public int Id { get; set; }

}

再行成立两个名为Product和Customer的基本概念类。这两个类中所的每一个都必要扩展到BaseModel类,如下所示:

脱氧核糖核酸

public class Product: BaseModel

{

public string Name { get; set; }

public decimal Price { get; set; }

}

public class Customer: BaseModel

{

public string FirstName { get; set; }

public string LastName { get; set; }

}

5.在.NET 6中所成立客户服务类

在同一个这两项中所成立另一个系统设计配置文件,并将其名字为Services。在此系统设计配置文件中所成立一个名为IBaseService的硬件,并为其发放此表文档:

脱氧核糖核酸

public interface IBaseService

{

public void Initialize();

}

Initialize工具能够由借助此硬件的所有类借助。Product Service和Customer Service类借助了IBaseService硬件,如比如说的文档片段所示:

脱氧核糖核酸

//ProductService.cs

using Core.Infrastructure.Models;

namespace Core.Infrastructure.Services

{

public sealed class ProductService: IBaseService

{

public void Initialize()

{

//Write your implementation here

}

public List GetProducts()

{

return new List();

}

}

}

脱氧核糖核酸

//CustomerService.cs

using Core.Infrastructure.Models;

namespace Core.Infrastructure.Services

{

public sealed class CustomerService: IBaseService

{

public void Initialize()

{

//Write your implementation here

}

public List GetCustomers()

{

return new List();

}

}

}

只能注意到的是,出于这个简单借助的借以,ProductService类和CustomerService类的Initialize工具都原有为空。研发者可以为这些编著自己的借助。

6.装有NetArchTest.RulesNuGet包被

那时候将NetArchTest.RulesNuGet包被填充到这两项中所。为此,只能在系统设计资源Wayland终端中所为了让这两项,然后右键选项并为了让“管理NuGet包被”。在NuGet包被Wayland终端中所,查看NetArchTest.Rules包被并装有它。

或者,可以通过NuGet包被Wayland控制台输出比如说看出的行来装有包被。

PM> Install-Package NetArchTest.Rules

7.在.NET6中所编著框架Smalltalk

最后,必要编著框架Smalltalk来定期检查被测源文档否合理标准。只能注意到,此处的“标准”一词是相对来说的,可以假设这些标准将由您定义。

此表测试工具有效性客户服务类的中文名称否带有客户服务后缀。

脱氧核糖核酸

public void ServiceClassesShouldHaveNameEndingWithService()

{

var result = Types.InCurrentDomain()

.That().ResideInNamespace(("Core.Infrastructure.Services"))

.And().AreClasses()

.Should().HaveNameEndingWith("Service")

.GetResult();

Assert.True(result.IsSuccessful);

}

可以用到另一条准则来有效性所有客户服务类否都借助了IBaseService硬件。此表测试工具说明了如何借助这一点。

脱氧核糖核酸

public void ServiceClassesShouldImplementIBaseServiceInterface()

{

var result = Types.InCurrentDomain()

.That().ResideInNamespace(("Core.Infrastructure.Services"))

.And().AreClasses()

.Should().ImplementInterface(typeof(IBaseService))

.GetResult();

Assert.True(result.IsSuccessful);

}

还可以有一个准则来有效性客户服务类是公共的而不是装入的。如果这些类是装入的,将无法实质性扩展到它们。

脱氧核糖核酸

public void ServiceClassesShouldBePublicAndNotSealed ()

{

var result = Types.InCurrentDomain()

.That().ResideInNamespace(("Core.Infrastructure.Services"))

.Should().BePublic().And().NotBeSealed()

.GetResult();

Assert.True(result.IsSuccessful);

}

当试运行这些测试工具时,必要就会找到它们都通过了测试,也就是取得了成功。在此之后修改文档并重新试运行测试,以定期检查否合理探讨的准则。

正在试运行NetArchTestSmalltalk

只能记住的是,在较修改版的C#语言学中所,可以在硬件中所拥有成员的选项借助。因此,如果有一个硬件由一个或多个类借助,可以在硬件中所编著选项借助。如果编著的文档在硬件的所有借助中所都是标准化的,就是正确的。

原意链接:

北京看白癜风到哪家好
重庆妇科医院专家预约挂号
艾拉莫德片治类风湿吗
郑州看妇科哪家专科医院好
手指骨关节炎用什么药
友情链接