相关疑难解决方法(0)

无法将Base类(数据协定)强制转换为派生类

[DataContract]
public class SearchCriteria
{
    [DataMember]
    public string CountryID { get; set; }    
}

[DataContract]
public class CitySearchCriteria: SearchCriteria
{
    [DataMember]
    public string CityID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我在我的MVC控制器操作中创建了一个SearchCriteria实例,并尝试将其转换为CitySearchCriteria.

SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.CountryID = "1";
CitySearchCriteria citySearchCriteria = searchCriteria as CitySearchCriteria;
Run Code Online (Sandbox Code Playgroud)

上述语句后面的"citySearchCriteria"对象显示NULL值.我希望它显示属性,CountryID和CityID,其中CountryID已填充,CityID为空......但它将对象设置为NULL.

这可能是什么解决方案?DataContract有什么用呢?

评论建议,你不能将基数转换为派生:但实际上,我已经在我的视图中成功完成了这一点,它只是在控制器操作中不起作用:

CitySearchCriteria citySearchCriteria = (CitySearchCriteria)Model.SearchCriteria;
Run Code Online (Sandbox Code Playgroud)

这是成功转换的,为什么类似的东西不能在控制器动作中工作呢?

c# oop casting derived-class datacontract

8
推荐指数
2
解决办法
1万
查看次数

枚举并将属性从一个对象复制到另一个相同类型的对象

我使用第三方控件将一些数据导出为不同的格式.该控件有一个属性ExportSettings.但它是只读的.

我要手动设置它的属性,如

ctrl.ExportSettings.Paging = false;
ctr.ExportSettings.Background = Color.Red;
Run Code Online (Sandbox Code Playgroud)

所以我从用户那里得到了ExportSettings对象,我想把它设置为控件.

如何将其所有成员值复制到用户控件?

.net c# copy object

5
推荐指数
2
解决办法
2万
查看次数

如何在C#泛型类中调用类型转换运算符?

看来我们不能在C#泛型类中轻松调用类型转换运算符.这是代码.为什么?

T006最终归档我们的目标.

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Reflection;
using System.Linq;

namespace ConsoleApplication1
{
    class vec<T, T2> : List<T> where T : class
    {
        public vec(IEnumerable<T2> other)
        {
            //Converter<T2, T> cvt = (v) => (T)v; // T004 failed, try defined function dynamicly, cannot compile, too.

            // T006 pass, client happy, we not happy, but anyway passed, performance may not happy.
            var conversionOperator = typeof(T).GetMethods(BindingFlags.Static | BindingFlags.Public)
                                    .Where(m => m.Name == "op_Explicit" || m.Name == "op_Implicit") …
Run Code Online (Sandbox Code Playgroud)

c# generics type-conversion operator-keyword

0
推荐指数
1
解决办法
3260
查看次数