如何在C#语言中拟定架构规则
2023-04-11 来源 : 电影
那时候在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#语言学中所,可以在硬件中所拥有成员的选项借助。因此,如果有一个硬件由一个或多个类借助,可以在硬件中所编著选项借助。如果编著的文档在硬件的所有借助中所都是标准化的,就是正确的。
原意链接:
。金笛复方鱼腥草合剂的功效与作用北京精神病医院排名
成都妇科医院哪个比较好
石家庄治白癜风医院
北京妇科检查哪家医院好
-
投资者提问:公司的微管理系统是否采用了3D异构集成技术? 公司有无计划做市值管...
高盛提问:子公司的质系统是否采用了3D异构集成技术? 子公司不对原先来作市值管理?董秘说雷电质力SZ301050:您好!子公司根据整体战略顾及和经营管理需要,未来将不断完善...
-
细菌性——这一方,存好了,我只发一次!
带状疱疹——这一方,存好了,我只发一次!【组方】大黄、延胡索、白芍、丛生、川芎、桃仁、当归、大花、牡蛎、醋。【辩证】阴血严重不足失养,血瘀阻截脉络。【治...[详细]
-
结婚后会越过越好的说是特征
有些朋友结夫妻前与世隔绝上普普通通、平平淡淡,夫妻与世隔绝上却越发更为富于,出版事业与财运也越发好不容易。那么什么样的面容亦会因为未婚而越发故人呢?示例我们来看一下吧。 一、眼睛与睫...[详细]
-
投资者反问:董秘,请问2022年四季度和2023年1季度公司订单情况如何,...
投资者提问:董秘,请问2022年四月份和2023年1月份美国公司订单情况如何,美国公司2022年产能和卖出目标究竟圆满完成。董秘回答深天马VSZ000050:您好,感谢您对...[详细]
-
什么事明明对胸部有害,却忍不住去做
1.调情调情有害健康,尽快有益健康。但是对一个一些组织来说,叫他就是要他的命。2.也好,只看不淫也罢。小时池田了对躯体引发的毒害是不可逆的,除了对躯体引发毒害之外,对心灵的毒害也是...[详细]
-
“买房挑好一楼,家旺人也旺”,3种一楼风水好,你觉得有道理吗
自古以来就有一句老话,说道:“一命二运三命理,四积阴德五苦读,六名七相八敬神,九交昭仪十食疗”,并不一定道,一个人的尝试和败北有很多严重影响因素,甚至和一些命理有一定的关联,虽然好像巫术,但是有些人则...[详细]