SharedProject使用笔记
1.概要
本文主要分享如何Shared Project使用,和避坑。 1.1什么是Shared Project?
说简单一点就是微软提供的一个代码共享项目模板,从 Visual Studio 2015 起,共享项目 (Shared Project) 作为新的一种项目类型被添加到项目模板列表中,它带来的好处主要是使多个不同类型、不同平台的项目之间可以共享代码或资源这样我们就不用去重复写代码,或者在特殊情况下就不用将一个类直接拷贝到另外一个类库下。 1.2如何使用? 1.2.1创建项目
找到项目模板
1.2.2使用
创建完成之后,库的图标和常规的C#库不一样是两个菱形。
接着创建一个类,代码如下: public class Class1
{
public int Calculation (int i ,int j )
{
return i + j ;
}
}
然后在需要share的项目上添加引用,接着正常通过类名正常访问该方法即可
2.详细内容2.1解读
Shared Project当然还有其他的使用场景这里就介绍基本用,看完以上操作之后大家可能会认为创建一个普通的类库好像也能实现,实际上也差不多。
普通类库的有一个弊端就是在大家误操作的时候会出现类库与类库之间项目引用变成了"循环引用",而Shared Project只能被别人引用。
将不受平台、框架限制的通用代码可以放到Shared Project。
可能更多的会在设计上考虑在Shared Project中放些通用的代码,以Prism举例:
Prism的设计是将xxx.Container(容器)放到了Shared Project中,这样在兼容Wpf和Forms上就不用重复写Container相关的代码了,举一反三那么如果要兼容MAUI和Avalonia实现同样的框架设计那么拿来直接用即可。
2.2使用注意
最近在研究用DDD写服务端,出现一个场景。当拆分多个服务的时候每个细分服务都会使用HttpResponseDTO,那么这个时候我不想使用类库造成"引用混乱"自然是想到使用Shared Project。
结果我在使用的时候出现了一个问题,在写web api层的时候会用HttpResponseDTO,在Application层也会用到我同时在这两层同时引用了Shared Project里的HttpResponseDTO这个时候就出现了一个冲突这个问题查了一早上。项目结构如下:
代码: [HttpPost ]
public async Task < HttpResponseDTO < bool >> Upload (UplaodVersionDTO version , HttpRequest request )
{
try
{
//.....
//这句代码报错,从Application层引用的实现逻辑。
return await _upgradeService .Upload (version , file .Item1 , file .Item2 );
}
catch (Exception ex )
{
_logger .LogError (ex , ex .Message );
return HttpResponseDTO < bool > .InnerException (false , ex .Message );
}
}
错误: 严重性 代码 说明 项目 文件 行 禁止显示状态
错误 CS0029 无法将类型"xxx .Domain .Shared .DataTransferObjects .HttpResponse < bool > [AService .Application , Version = 1.0 .0.0 , Culture = neutral , PublicKeyToken = ]"
隐式转换为"xxx .Domain .Shared .DataTransferObjects .HttpResponse < bool > [AService .Api , Version = 1.0 .0.0 , Culture = neutral , PublicKeyToken = ]"
AService .Api
怎么样想都没有想明白为什么会出现这种问题,当我把web api层的Shared Project引用移除之后就正常了。原来VS会将不同层的引用的Shared Project视为不同的对象。
体虚对于夫妻性福生活会有影响吗?听听医生怎么说(第五篇)日常体检中总是发现报告单上出现脂肪肝的诊断,哎可能自己吃的太油了吧明天和意外永远不知道哪一个先会到来,早上起来发现自己动不了了!对于以上两种情况来讲和自身的血瘀体质往往有一定的关系
痛失爱父心悲泣远生发蒙前死了父亲。那是一个阳光和暖的早晨,太阳先从周公山顶露出头,半个脸被灰蒙蒙的天边荫蔽,是个灰太阳的样子,等到鱼肚白赶了个早集聚在天边,太阳就变了脸,嬗为一个白太阳,当一层霞
G君,一路走好G君,真没有想到,我们在这个冬天里永别了!G君,我们得到你与我们永别的噩耗,是12月26日1927分,在同学群里,P君的发布。而你的永别是25日9时35分在上海因病离世,来不及说一
扔掉无用社交有句话说一个人在事业上的成功,百分之十五取决于个人能力,百分之八十五取决于人际关系。于是,很多人费尽心机经营人脉,以为自己认识的人足够多,事业就能节节高升。殊不知,只有当你足够有价
微信2022年最后一次更新2个新变化2022年最后一次更新,安卓微信内测版来了。安卓版微信近日发布了8。0。32内测版本,距离上次更新已有三周时间,微信这次憋出了什么大招呢,一起来看看吧。1清除聊天记录可以自定义时间
永远是下一个最好!iPhone15及Plus可能降价近千元!力拼同档安卓14系列才发布没多久,终于iPhone15的消息来了!据Macrumors消息,苹果正在重新审视现有的机型搭配,不知道会不会考虑同时推出SE或者XR类似的系列呢?苹果正在考虑两种可
OPPO加码芯片研发,投入45亿即将建设芯片专有研发中心!在2022年度未来科技大会上,OPPO完成了马里亚纳自研芯片安第斯智能云潘塔纳尔智慧跨端系统三大核心能力的完整布局,也让业界看到了OPPO在科技创新方面的实力。但完成初步布局的OP
杨幂新年维密大片流出,穿红色抹胸睡衣秀火辣身材,狂野,迷人前几天杨幂因出席时尚芭莎活动上了一次热搜,一袭白色蕾丝纱裙礼服造型吸引了众多网友的目光身材超好,美艳动人,宛似人鱼公主,再配上精致的妆容,果然搞事业的女人闪闪发光。她那水汪汪的大眼
陈乔恩男人装说起陈乔恩,相信在座的各位,应该是绝对不会陌生了,以现在的名气而言,陈乔恩几乎也算是一流的女艺人了,相当的高。而陈乔恩在颜值这方面,也算是挺高的了,一直以来,都被很多网友喜欢,自从
三大顶级户外羽绒服品牌,比始祖鸟还要强,低调小众而又富有实力始祖鸟是当今全球当之无愧的第一户外品牌,可以说是户外圈中的顶级奢侈品。但是熟悉始祖鸟的友友们都知道,始祖鸟最引以为傲最出名的是它的两大防水产品硬壳冲锋衣和背包。毫不夸张的地说,硬壳
173cm穿搭博主,笑起来迷人真的太撩人了今日给大家推荐来自广州的穿搭博主,作为一个平面模特,小哥哥的颜值真是好高,笑起来的时候,气质撩人,这五官精致得太迷人了,哪个女孩子的不爱啊?这充满魅力的电眼,无论男女老少,都相当的