我在我编写的一个安静的 Web API 2 发布方法上调用 UploadStringTaskAsync 并且它毫无例外地失败了。如果我将调用更改为 UploadString,它将按预期工作。我尝试了许多不同的方法。通过 UploadStringTaskAsync 尝试,Fiddler 确实显示了正在发布的帖子,但内容长度不匹配(见下文)。我正在从测试控制台应用程序中包含的类库运行此调用。.Net 4.5.2 到目前为止只是在 VS 2015 的调试模式下运行。这是我的代码:
private async Task PostLoggingItem(SmgLoggingItem loggingItem)
{
try
{
//using (WebClient client = new WebClient())
//{
//WebClient client = new WebClient();
const string authToken = "mytoken";
loggingItem.AuthToken = Encryptor.GenerateSecurityToken(authToken);
client.Encoding = Encoding.UTF8;
//client.Credentials = CredentialCache.DefaultNetworkCredentials;
//client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential("user","mypwd","mydom");
// set content type to JSon
client.Headers.Add("Content-Type", "application/json");
var jsonItem = JsonConvert.SerializeObject(loggingItem);
var response = await client.UploadStringTaskAsync(new Uri(ConfigurationManager.AppSettings["WebLogAPI"]), jsonItem);
//string response = client.UploadString(new …Run Code Online (Sandbox Code Playgroud) 我正在尝试在c#(5.0)中构建一个我可以用作基类的类,它包含一个List,但List可以是两种不同的类型.我想做以下事情:
public class BaseC
{
string header { get; set; }
List<object> recs { get; set; }
}
public class derive1: BaseC
{
List<myclassA> recs;
}
public class derive2: BaseC
{
List<myclassB> recs;
}
Run Code Online (Sandbox Code Playgroud)
而且重要的是我想要做的是从另一个类中的方法返回派生类:
public BaseC PopulateMyDerivedClass()
{
BaseC b = new BaseC();
b.header = "stuff";
b.recs = FileHelperEngine<myclassB> fhe.ReadStringAsList(x);
}
Run Code Online (Sandbox Code Playgroud)
主要的一点是这个方法PopulateMyDerivedClass确实完全相同的两个derive1和derive2,只是它返回一个不同类型的列表.
我想我需要泛型.但是,这是在基类级别,PopulateMyDerivedClass然后应该返回通用?我想也许我不是在处理多态性问题,但是你可以猜测我是仿制药的新手,所以很挣扎.
每当我从数据库更新 EF 6 模型(添加表)时,都会收到上述错误。
这不是一个新问题。我阅读了此处列出的所有建议(无法从 'System.Data.Objects.ObjectParameter' 转换为 'System.Data.Entity.Core.Objects.ObjectParameter')。
答案说要更换
using System.Data.Objects;
using System.Data.Objects.DataClasses;
Run Code Online (Sandbox Code Playgroud)
和
using System.Data.Entity.Core.Objects;
using System.Data.Entity.Core.Objects.DataClasses;
Run Code Online (Sandbox Code Playgroud)
当我从数据库更新模型并编译时,有问题的名称空间(System.Data.Objects 和 System.Data.Objects.DataClasses)立即返回,生成编译错误,并且添加的表从模型中消失!
所以我发现自己陷入了添加表、编译错误、替换上述行并丢失表的恶性循环。冲洗,重复。经过 5-6 次尝试后,当我幸运时,添加的表格就会显示在模型中。
所以我尝试重新安装实体框架(6.2.0),但这并不能解决问题。
有人提到“版本冲突”。除了卸载并重新安装我已经尝试过多次的软件包之外,还有什么方法可以检查呢?