小编Kar*_*arl的帖子

为什么我不能从List <MyClass>转换为List <object>?

我有一个对象列表,这是我的类型QuoteHeader,我想将此列表作为对象列表传递给一个能够接受的方法List<object>.

我的代码行读了......

Tools.MyMethod((List<object>)MyListOfQuoteHeaders);
Run Code Online (Sandbox Code Playgroud)

但是我在设计时遇到以下错误......

Cannot convert type 'System.Collections.Generic.List<MyNameSpace.QuoteHeader>' 
to 'System.Collections.Generic.List<object>'
Run Code Online (Sandbox Code Playgroud)

我是否需要对我的班级做任何事情才允许这样做?我以为所有类都继承自对象,所以我无法理解为什么这不起作用?

c# generics casting covariance

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

如何更改我的Web方法调用的http版本以停止505错误?

我需要从服务提供商处获取一些数据,并将我们的.net应用程序配置为指向其托管的Web服务以获取数据.使用下面的代码,当调用web方法时(ws.DoTransfer)我得到以下错误...

    private void DoTransferLocal()
    {
            Version version = new Version();
            string error = string.Empty;
            try
            {
                    RemoteService ws = new RemoteService();
                    ServicePoint spm = ServicePointManager.FindServicePoint(new Uri(ws.Url));
                    spm.Expect100Continue = true;
                    version = spm.ProtocolVersion;
                    ws.Credentials = credentials;
                    ws.PreAuthenticate = true;
                    RemoteResult result = ws.DoTransfer();
                    MessageBox.Show("Result = " + result.transferStatus);
            }
            catch (Exception ex)
            {
                    error = ex.Message;
            }
            finally
            {
                    MessageBox.Show(version.ToString() + Environment.NewLine + error);
            }
    }
Run Code Online (Sandbox Code Playgroud)

错误:

HTTP状态505请求失败:HTTP版本不受支持.

我被告知HTTP的版本需要为1.0,但我的版本是1.1

我已经阅读了几篇有关此内容的谷歌帖子,并且已经看到了覆盖此GetWebRequest方法的建议...

    protected override System.Net.WebRequest GetWebRequest(Uri uri)
    {   
            System.Net.HttpWebRequest …
Run Code Online (Sandbox Code Playgroud)

.net web-services http version http-status-code-505

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

将二进制数转换为ascii字符

我正在从设备读取信息,它以整数格式向我返回数据,我需要使用C#将其转换为ASCII字符.

以下是我必须转换的数据的示例.我从设备收到整数值26990,我需要将其转换为ASCII.我碰巧知道,对于这个值,期望的结果将是"ni".

我知道整数值26990十六进制为696e,二进制为110100101101110,但想知道如何进行转换,因为我无法自己解决.

有人可以帮忙吗?

非常感谢,

卡尔

c# hex ascii

3
推荐指数
1
解决办法
6290
查看次数

c#从具有不同属性名称的数组创建List <object>

我想知道是否可以从数组创建一个通用列表,其中属性是不同的,包括数量和名称.我已经看过很多帖子可以用每个对象中的相同字段来做到这一点,但没有一个有不同的属性名称,并且它们的数量不同.

当填充我的List时,感觉应该有一种方法将某个属性"映射"到另一个属性.

我可以访问一个Web服务 - 我无法控制 - 它为我提供了给定对象的许多属性; 一切都名声不好,有些是无关紧要的.

我目前正在使用foreach循环遍历我的数组中的所有项目,然后使用我的通用列表中的对象的类构造函数添加到我的List.

如果我的数组中返回了大量的项目,这种方法开始变得非常脏,我想知道是否有更优雅的解决方案.

详细说来,假设我有一个具有以下属性的对象数组,在我无法控制的Web服务中传递给我:

  • HorribleName1(String)
  • HorribleName2(String)
  • HorribleName3(日期时间)
  • HorribleName4(int)

但我的本地班级有以下属性......

  • FirstName(字符串)
  • LastName(字符串)
  • DateOfBirth(DateTime)

我知道HorribleName1是这个人的第一个名字,而HorribleName2是姓氏.我也知道HorribleName3是他们的出生日期,而HorribleName4则无关紧要.

是否有更好的方法来创建我的通用列表:

List<myPerson> myList = new List<myPerson>();       
foreach (ArrayObject person in HorribleArray)
{
    myList.Add(new myPerson(HorribleName1, HorribleName2, HorribleName3));
}
Run Code Online (Sandbox Code Playgroud)

c# arrays generics

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