草庐IT

通用化

全部标签

c# - AutoMapper 通用映射

我已经在StackOverflow上进行了搜索并在谷歌上进行了搜索,但我找不到任何关于此的帮助或建议。我有一个像下面这样的类,它创建一个PagedList对象,还使用​​AutoMappper将类型从源映射到目标。publicclassPagedList{protectedreadonlyList_items=newList();publicIEnumerableItems{get{returnthis._items;}}}我想为这种类型创建一个映射,将其转换为另一种类型,如下所示publicclassPagedListViewModel{publicIEnumerableItems{

c# - Func<> 的 List<>,具有通用返回类型的编译错误,但为什么呢?

这个问题有点长,所以请耐心等待。我需要在一组字符串和每个字符串对应的通用方法调用之间创建一个映射。但是,我遇到了一个编译问题,下面进行了解释。在我的场景中,我使用的是Dictionary,但问题同样存在于List.为简单起见,我使用List在下面的示例中。考虑这三个类:publicabstractclassMyBase{/*bodyomitted*/}publicclassMyDerived1:MyBase{/*bodyomitted*/}publicclassMyDerived2:MyBase{/*bodyomitted*/}还有一些其他类中的方法:publicclassTest{p

c# - 通用 Windows 平台 (UWP) 中的反射缺少属性

Typet=obj.GetType();t.IsEnum;t.IsPrimitive;t.IsGenericTypet.IsPublic;t.IsNestedPublict.BaseTypet.IsValueTypeUWP中缺少上述所有属性。我现在如何检查这些类型? 最佳答案 面向UWP的C#应用使用两组不同的类型。您已经知道.NET类型,如System.String,但UWP特定类型实际上是幕后的COM接口(interface)。COM是互操作的super粘合剂,这也是您还可以使用Javascript和C++编写UWP应用程序的基

C# 转换继承的通用接口(interface)

我在转换我想出的界面时遇到了一些麻烦。它是C#Windows窗体的MVP设计。我有一个IView类,我在我的表单类上实现了它。还有一个IPresenter,我派生到各种特定的Presenter中。每个Presenter将根据角色以不同方式管理IView,例如打开对话框以使用AddPresenter输入一组新数据,而不是使用EditPresenter编辑现有数据,后者会将数据预加载到表单中。其中每一个都继承自IPresenter。我想这样使用代码:AddPresenterpres=newAddPresenter();我基本上可以正常工作,但是这些演示者和它们管理的View被捆绑到插件中,

c# - 将通用数据表转换为类型化数据表

我需要重用客户指定的DataAccess方法。此方法返回普通数据表。我想将此数据表转换为我的类型化数据表。列的数量和它们的类型将匹配。异常消息“无法将‘System.Data.DataTable’类型的对象转换为‘MarketValueDataTable’类型。”很清楚,但我该如何解决?看过casting-a-base-type-to-a-derived-type,但看不出如何让它发挥作用。我无法使用数据读取器填充数据表,只能使用客户端的DataAccess方法。 最佳答案 只有当该方法返回的表实际上是MarketValueData

c# - 如何激活将操作作为其参数的通用方法

当只能在运行时推断类型时,您将如何使用反射来执行以下方法?MainObject.TheMethod(Action>)在日常使用中,通常:mainObject.Method(m=>m.Do("Something"))因此,给定一个类型列表,我需要在上面的方法中用它们替换T并调用。这是我在转向腻子之前得到的地方:varmapped=typeof(Action>).MakeGenericType(t.GetType());Activator.CreateInstance(mapped,newobject[]{ermdosomething?});typeof(OtherObject).GetM

c# - 静态通用类作为字典

泛型类中的静态字段对于泛型参数的每个组合都有一个单独的值。因此它可以用作Dictionarywhatever>这比静态Dictionarywhatever>好还是坏?换句话说,这些实现中哪个更有效?publicstaticclassMethodGen{publicstaticreadonlyActionMethod=CreateMethod();staticActionCreateMethod(){/*...*/}}或者,publicstaticclassMethodGen{staticreadonlyDictionarymethods=newDictionary();publicst

c# - 在 MSTest 中忽略从通用基类继承的测试类

在MSTest中创建通用基测试类并从中继承时,我无法运行所有继承类的测试。BaseDependencyPropertyFactoryTest位于Whathecode.PresentationFramework.Tests程序集中。它是通用基类。(BaseDependencyPropertyFactoryTest)两个程序集都有一个继承自该基类的测试,称为DependencyPropertyFactoryTest。继承类所做的只是传递一个特定类型的参数。[TestClass]publicclassDependencyPropertyFactoryTest:BaseDependencyPr

c# - 从字符串属性名称创建通用表达式

我有一个名为sortColumn的变量,它包含我想作为查询结果排序依据的列的文本。我还有一个通用存储库,它将包含我要排序的字段的表达式作为参数。我似乎无法从字符串属性名称获取表达式。所以我拥有的通用存储库包含以下方法publicIEnumerableGet(Expression>criteria,Expression>orderBy,intpageIndex,intpageSize,boolisAssendingOrder=true,EnumDeletePolicydeletePolicy=EnumDeletePolicy.ExcludeDeleted)注意此Get的第二个参数是Exp

c# - 通用方法参数的接口(interface)约束

在我寻求正确理解C#的过程中,我发现自己在问在泛型方法参数上指定接口(interface)约束与简单地将接口(interface)指定为参数类型之间的实际区别是什么?publicinterfaceIFoo{voidBar();}publicstaticclassClass1{publicstaticvoidTest1(Targ1)whereT:IFoo{arg1.Bar();}publicstaticvoidTest2(IFooarg1){arg1.Bar();}}编辑我知道我的示例非常狭窄,因为它只是一个示例。我对超出其范围的差异很感兴趣。 最佳答案