草庐IT

通用的

全部标签

c# - 需要一些异步调用的单例类

我有一个单例类,它加载了一些关于它的构造的数据。问题是加载这些数据需要调用async方法,但是构造函数不能是async。换句话说,我的类(class)有以下结构:publicclassSingleton{privatestaticSingletoninstance;privateSingleton(){LoadData();}publicstaticSingletonInstance{get{if(instance==null){instance=newSingleton();}returninstance;}}}LoadData()是一个async函数,它调用许多async函数以及初

c# - DataAnnotations 命名空间中的 Enum 值是否有开箱即用的验证器?

C#枚举值不仅限于其定义中列出的值,还可以存储其基类型的任何值。如果未定义基类型,则使用Int32或仅使用int。我正在开发一个WCF服务,它需要确信某些枚举已经分配了一个值,而不是所有枚举的默认值0。我从一个单元测试开始,以确定[Required]会在这里做正确的工作。usingSystem.ComponentModel.DataAnnotations;usingXunit;publicenumMyEnum{//Ialwaysstartfrom1inordertodistinctfirstvaluefromthedefaultvalueFirst=1,Second,}publiccl

c# - 公共(public)方法的自定义集合与通用集合

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion公开自定义集合与通用集合的框架设计指南是什么?例如publicclassImageCollection:Collection{...}publicclassProduct{publicImageCollection{get;set;}}对比publicclassProduct{publicCollectionImages{get;set;}}

c# - 如何在不更改相同列表的情况下反转通用列表?

我有一个通用列表,它在一个被调用4次的方法中使用。此方法使用此通用列表的值在PDF中写入表格。我的问题是我需要在方法中反转这个通用列表,但我调用了该方法4次,所以每次我调用该方法时列表都会被反转,我不希望这样......什么我可不可以做?有没有办法在不改变原始列表的情况下反转列表?这是在方法内部:t.List.Reverse();foreach(stringt1int.List){//Somecode} 最佳答案 “简单”的选择是仅以相反的顺序迭代列表而不实际更改列表本身,而不是第一次尝试将其反转并且知道其他时间什么都不做:fore

c# - 通用扩展方法歧义

我定义了两个接口(interface)://IVector.cspublicinterfaceIVector{intSize{get;}floatthis[intindex]{get;set;}}//IMatrix.cspublicinterfaceIMatrix{intSize{get;}floatthis[introw,intcolumn]{get;set;}}以及这些接口(interface)的扩展方法//VectorExtensions.cspublicstaticTAdd(thisTvector,Tvalue)whereT:struct,IVector{varoutput=d

在未引用的程序集中定义的 C# 类型

我有两个项目A和B。项目A在项目B中使用了类型X,因此我在A中添加了对B的引用。一切都很好。我使用强命名key文件签署了项目B。一切仍然很好。然后我决定更改B的强命名key文件。我重建项目Bok。当我尝试构建项目A时收到错误“错误1​​类型X在未引用的程序集中定义。您必须添加对程序集B的引用,版本=1.0.0.0,文化=中性,PublicKeyToken=95b41b0d6571627b”。"所以我删除了项目A中的引用,然后再次将其添加回去,没有任何乐趣。我可以dbl单击项目A中的项目B引用,打开对象浏览器并在其中查看类型X。我还完全限定了A中的X类型对象,智能感知很好地识别了它们,但

c# - 我应该将通用存储库与 Entity Framework 5 一起使用吗?

我目前正在使用具有通用存储库和工作单元模式的EntityFramework。我的模型类似于thisarticle中描述的模型我过去使用过GenericRepositories,非常喜欢它提供的全局功能。但是,在将它与EntityFramework一起使用时,我似乎每天都会遇到更多问题。在处理父/子/联结关系时,这些问题似乎会出现更多。将通用存储库与EF结合使用开始给我留下不好的印象,我开始认为将通用存储库与EF结合使用是错误的方法。有人可以帮我指引正确的方向吗? 最佳答案 本文的方法确实会成为一种痛苦,因为您已经在EF中拥有一个通用

c# - 在通用抽象类中实现强制转换运算符

我试图偷懒并在抽象基类中而不是在每个派生的具体类中实现转换运算符。我已经设法施放了一种方式,但无法施放另一种方式。我认为这可能是不可能的,但想在放弃之前选择集体SO的想法:publicinterfaceIValueType{TValue{get;set;}}publicabstractclassValueType:IValueType{publicabstractTValue{get;set;}publicstaticexplicitoperatorT(ValueTypevt){if(vt==null)returndefault(T);returnvt.Value;}publicsta

c# - 通用关系到复合 C# 对象映射器

我有以下代码能够将Reader映射到简单对象。问题是万一对象是复合的,它就无法映射。如果它本身是一个类,我无法通过检查属性来执行递归prop.PropertyType.IsClass因为调用DataReaderMapper()需要Type。关于如何实现或其他方法的任何想法?另外,目前我不希望使用任何ORM。publicstaticclassMapperHelper{//////extensionMethodforReader:Mapsreadertotypedefined//////Generictype:ModelClassType///this:currentReader///Li

c# - 使用 LINQ for Entity Framework 将实体转换为通用方法中的已实现接口(interface)

我有一个通用方法来查询EF中TEntity类型的对象。如果TEntity实现特定接口(interface),我想将条件添加为where子句。我的方法是:publicTEntityGetByUserID(GuiduserID){varquery=this.DbSet;if(typeof(TEntity).IsImplementationOf()){query=query.Where((x=>!((IDeletableEntity)x).IsDeleted);}returnquery.FirstOrDefault(x=>x.UserID==userID);}IsImplementation