我正在解决在基类中处理鼠标事件的问题.由于断点不能很好地解决鼠标事件的故障,我想在事件处理程序中添加一些调试输出.但是,对于我来说,在调试信息中包含实际派生类的名称非常重要,因为基类中的事件处理代码由大量派生类共享,并且只有某些派生类出现问题.
我试过使用this.GetType().Name但这只是返回base类的类型.我当然可以开始修改类,比如说,将派生类传递type给它可以存储它的基类构造函数,但这显然只是一个临时需要的很多变化.有没有一种简单的方法从基类中获取派生类的类型?
await httpClient.SendAsync(httpContent)没有响应,虽然我发现没有错误的代码/网址仍然挂起.请建议/帮助.
我的代码如下:
public async Task<string> Get_API_Result_String(string url, List<KeyValuePair<string, string>> parameters)
{
string res = "";
try
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
//Prepare url
Uri mainurl = new Uri(settings[FSAPARAM.UserSettingsParam.SERVERNAME].ToString());
Uri requesturl = new Uri(mainurl, url);
var httpClient = new HttpClient();
var httpContent = new HttpRequestMessage(HttpMethod.Post, requesturl);
// httpContent.Headers.ExpectContinue = false;
httpContent.Content = new FormUrlEncodedContent(parameters);
HttpResponseMessage response = await httpClient.SendAsync(httpContent);
var result = await response.Content.ReadAsStringAsync();
res = result.ToString();
response.Dispose();
httpClient.Dispose();
httpContent.Dispose();
}
catch (Exception ex)
{
Logger l = new …Run Code Online (Sandbox Code Playgroud) 现在我用Guids了.
我当然记得,在某些地方的代码中,这种隐式转换是有效的,而在其他地方却没有.直到现在我都没有看到这种模式.
编译器如何决定它何时不能?我的意思是,类型方法Guid.ToString()存在,不需要在需要这种转换时调用它吗?
有人可以告诉我在什么情况下这种转换是自动完成的,当我必须myInstance.ToString()明确调用时?
我们创建了用于查询Oracle数据库的WebAPI.查询返回巨大的结果,因此有时会抛出OutOfMemoryException.
建议是使用Paging概念.我不明白客户端应用程序将如何知道必须调用API多少次才能获得整个结果集.我还需要为分页创建一个单独的类,还是可以在我的API控制器中操作它.
任何人都可以帮我这个,因为这是我的第一个Web API.我们无法为此创建存储过程,因为我们只对数据库具有读访问权限
public HttpResponseMessage Getdetails([FromUri] string[] id)
{
string connStr = ConfigurationManager.ConnectionStrings["ProDataConnection"].ConnectionString;
using (OracleConnection dbconn = new OracleConnection(connStr))
{
var inconditions = id.Distinct().ToArray();
var srtcon = string.Join(",", inconditions);
DataSet userDataset = new DataSet();
var strQuery = @"SELECT * from STCD_PRIO_CATEGORY where STPR_STUDY.STD_REF IN(" + srtcon + ")";
using (OracleCommand selectCommand = new OracleCommand(strQuery, dbconn))
{
using (OracleDataAdapter adapter = new OracleDataAdapter(selectCommand))
{
DataTable selectResults = new DataTable();
adapter.Fill(selectResults);
var returnObject = new { data …Run Code Online (Sandbox Code Playgroud) 在使用EF(至少达到6.1.3版本)时,假设您有类似这样的类:
class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果要获得一个字段FullName,它是(FirstName和LastName)两者的串联作为查询结果中的字段,则必须执行以下操作:
db.Customers.Select(c => new { FullName = c.FirstName + " " + c.LastName })
Run Code Online (Sandbox Code Playgroud)
既然在C#中有字符串插值,你可以做这样的事情
db.Customers.Select(c => new { FullName = $"{c.FirstName} {c.LastName}" })
Run Code Online (Sandbox Code Playgroud)
这似乎是一个微不足道的例子(它是),但问题仍然存在.
我可以使用这个现成的,做我需要做一些技巧来得到它的工作或者是确保它不会工作?
我正在转变HttpContent为以下dto:
public class ContentDto
{
public string ContentType {get; set;}
public string Headers {get; set; }
public object Data { get; set; }
public ContentDto(HttpContent content)
{
Headers = content.Headers.Flatten();
// rest of the setup
}
}
Run Code Online (Sandbox Code Playgroud)
我正在运行一些单元测试:
[Fact]
public void CanBuild()
{
var content = new StringContent("some json", Enconding.UTF8, "application/json");
var dto = new ContentDto(content);
var contentHeaders = content.Headers.Flatten();
Assert.Equal(contentHeaders, dto.Headers);
}
Run Code Online (Sandbox Code Playgroud)
并且该测试失败,因为Content-Length标题没有被我的dto捕获.但是,如果我这样做:
[Fact]
public void CanBuild()
{
var content = new StringContent("some json", Enconding.UTF8, …Run Code Online (Sandbox Code Playgroud) 在F#,我们有List.partition和Array.partition其返回列表的元组分别阵列的元组.
那么,为什么没有Seq.partition返回一个序列元组?
这是一个非常简单的实现: F#Snippets
所以...为什么不是核心的这一部分?
我刚刚开始学习一些clojure,为了制作类似的类型(更像合同)进行验证等,首选解决方案是一个名为的库schema.
最近我了解到clojure 1.9会有类似名字的东西clojure.spec
谁能告诉我他们之间的区别?
我什么时候应该使用其中一个,优点和缺点等?
如果在我的应用程序中抛出自定义错误,我需要全局重定向我的用户.我已经尝试将一些逻辑放入我的global.asax文件中以搜索我的自定义错误,如果它被抛出,执行重定向,但我的应用程序永远不会命中我的global.asax方法.它一直给我一个错误,说我的异常未被用户代码处理.
这就是我在全球范围内所拥有的.
protected void Application_Error(object sender, EventArgs e)
{
if (HttpContext.Current != null)
{
Exception ex = HttpContext.Current.Server.GetLastError();
if (ex is MyCustomException)
{
// do stuff
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的异常抛出如下:
if(false)
throw new MyCustomException("Test from here");
Run Code Online (Sandbox Code Playgroud)
当我把它放入抛出异常的文件中的try catch时,我的Application_Error方法永远不会到达.任何人都有一些关于如何全局处理这个问题的建议(处理我的自定义异常)?
谢谢.
1/15/2010编辑:这是//做什么的东西.
RequestContext rc = new RequestContext(filterContext.HttpContext, filterContext.RouteData);
string url = RouteTable.Routes.GetVirtualPath(rc, new RouteValueDictionary(new { Controller = "Home", action = "Index" })).VirtualPath;
filterContext.HttpContext.Response.Redirect(url, true);
Run Code Online (Sandbox Code Playgroud) 我对.NET的核心部分图书馆哪些目标net45和netstandard1.6,我想单元测试.我做了,dotnet new -t xunittest并创建了一个新的测试项目,netcoreapp1.0以便它只测试.NET Core代码.
我也尝试将其编译为目标,net45但后来我在测试发现时遇到了一系列错误.我的问题是
有没有办法测试针对两个(可能更晚)框架的代码与单个测试项目,还是我应该针对每个目标进行测试项目?
编辑:这是我project.json和我得到的消息:
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {
"xunit": "2.1.0"
},
"testRunner": "xunit",
"frameworks": {
"net45": {
"frameworkAssemblies": {
"System.Runtime": "4.0.0.0"
}
},
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
},
"System.Runtime.Serialization.Primitives": "4.1.1",
"dotnet-test-xunit": "2.2.0-preview2-build1029"
},
"imports": [
"dotnet5.4",
"portable-net451+win8"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
这些是我编译项目后得到的错误:
dotnet-test Error: 0 : [ReportingChannel]: Waiting for message failed …Run Code Online (Sandbox Code Playgroud) c# ×6
asp.net-mvc ×2
.net ×1
.net-core ×1
asp.net ×1
clojure ×1
f# ×1
http-headers ×1
httpcontent ×1
linq ×1
paging ×1
redirect ×1
tostring ×1
unit-testing ×1
xunit.net ×1