如何在C#语言中拟定架构规则
2023-04-05 来源 : 综艺
那时候在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#语言学中所,可以在硬件中所拥有成员的选项借助。因此,如果有一个硬件由一个或多个类借助,可以在硬件中所编著选项借助。如果编著的文档在硬件的所有借助中所都是标准化的,就是正确的。
原意链接:
。迪根和英太青的效果一样吗北京看妇科到哪个医院好
北京肛肠医院去哪家好
宁波看妇科哪家医院比较好
石家庄哪里治疗白癜风最好
-
卫生间的小飞虫到底是啥?别看外表奇怪的是,但它的危害超出你想象
拍戏死一个又来两个,有点不胜其烦。 那它们又在在哪冒出来的? 小小肌肉的天牛蚯蚓有一个响亮的名号—“矿坑侦探”。 可以说是,天牛蚯...
-
八国联军入侵北京是如何对待那些皇宫妃子的,清朝的颜面又明知?
明末清初以前,中国在文化、科学、新科技和和平时期特别依然走在全球性位居。由于闭关锁国,中国的的发展逐渐偏离了全球性的发展的轨道。当中国再独自次关上与全球性对话的大门时,它已经处于无法控制地位。任...[详细]
-
“绿鞋”护航8只平安保险走稳 穿“鞋”平安保险有望增多
本报路透社 邢 萌“绿鞋”再现东村场。12翌年7日晚,科创板子普通股百济神州公布再版结果,网上融资放弃认购数目为103.25万股,弃购金额为1.99亿元。根据规定,弃购大多将由中金新公司等5家...[详细]
-
未来两年仰17款新能源新车 菲亚特计划2027年在欧洲实现电动化
【EV观察者报道】全因,Stellantis 的公司在一新发表的 2021 年财报里面问到,旗下雷诺品牌著手到 2027 年在北美实现全电动简化,短期内将在北美仅推出则有小型汽车。同时,雷诺才会...[详细]
-
多功能核心区+立体外加,极限设计让90㎡的五口之家亲密又独立~
家装室内装饰 ,每日搜集分享近年来最前沿的家装所设计、施工、建材等内容可,成为您家装的好帮手!本案是一套国土面积为90平米的四居室,一家十三行三代同堂,所设计上要考虑每个家庭成员各...[详细]
-
全球第一大浏览器升级!Chrome新正式版订阅下载:更快了
本周,Chrome 93Beta发布上传。 按计划,Chrome 94Beta将于9月底21日上线,Chrome 95则要等到10月底19日,也就是围墙迭代。 Chrome 93的...[详细]