我正在创建一个HttpModule,它需要知道在MVC应用程序中设置的Thread.CurrentThread.CurrentCulture的值.该值当前由BaseController设置,但是当我的HttpModule.PostRequestHandlerExecute()方法触发时,它将恢复到文化在页面呈现之前的状态.
我通过使用以下步骤创建一个简单的Web应用程序来重复此操作:
知道为什么.Net会改变这个值或者我怎么能绕过它?线程是一样的,所以.Net中的某些内容必须明确地恢复文化.
我有一个应该总是返回单个int 的查询.我现在记录它返回一个完全与它应该是无关的字符串.
我们已经获得了一些随机的FormatExceptions,我们已经跟踪了几个数据库查询.经过一些额外的日志记录后,我发现今天早上,下面的查询返回了字符串"gladiator".Website.PkID是一个int列,大部分时间都可以工作,但有时它会失败并且返回一个在那里(大于任何有效的WebsiteID)或随机字符串的int.
每个会话开始时会触发一次此特定查询.它没有使用共享连接,所以我很难理解它是如何得到这样的混合结果的.连接池中是否会出现某种损坏?
我不认为这个问题是孤立的.我也看到了来自LINQ查询的类似的FormatExceptions(因为意外的结果).我们也在同一时间发现了一些错误:
将请求发送到服务器时发生传输级错误.(提供程序:TCP提供程序,错误:0 - 远程主机强制关闭现有连接.
这可能是连接问题吗?或者我们可能在数据库服务器和Web服务器之间混淆了结果集?这真让我摸不着头脑.
违规查询:
public static int GetActiveWebSiteID(string storeID, string statusID)
{
int retval;
string sql = @"SELECT isnull(MAX(PkID),0) FROM WebSite
WHERE StoreID = @StoreID
AND WebSiteStatusID = @WebSiteStatusID";
SqlConnection conn = new SqlConnection(Settings.ConnString);
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@StoreID", (object)storeID ?? DBNull.Value);
cmd.Parameters.AddWithValue("@WebSiteStatusID", (object)statusID ?? DBNull.Value);
conn.Open();
using(conn)
{
var scalar = cmd.ExecuteScalar(); // <-- This value returned here should only ever be an int, but randomly …Run Code Online (Sandbox Code Playgroud) 例如,在一个分支中,我想看看一个数字可以被1000整除多少次,然后将起始数量少于该数量递归到函数中.这就是我写的:
if num // 1000 > 0 then
repeat (num // 1000) (String.fromChar 'M')
convertToRom (num % 1000)
Run Code Online (Sandbox Code Playgroud)
但是,我在测试时在REPL中收到以下错误:
> getRomNums 3500
-- TYPE MISMATCH ----------------------------------------- .\.\RomanNumerals.elm
Function `repeat` is expecting 2 arguments, but was given 4.
34| repeat (num // 1000) (String.fromChar 'M')
35|> convertToRom (num % 1000)
Maybe you forgot some parentheses? Or a comma?
Run Code Online (Sandbox Code Playgroud)
如何为单个if分支编写多行代码?
不相关的注释:格式系统使双斜杠成为注释,但在Elm中,双斜杠是整数除法.不知道如何解决这个问题.
我有一个关于记录的问题:假设我有一个接收记录的函数,如下所示:
getId : { file | id : String } -> String
getId file = file.id
Run Code Online (Sandbox Code Playgroud)
我可以传递这样的信息:{ id = "abcd", name = "hi.txt"}因为它有一个id. 到目前为止一切都很好。我的问题是:我可以为函数类型签名中的“文件”创建一个别名吗?那的语法是什么?
我正在学习Haskell使用Haskell表达学校:通过多媒体学习功能编程,我不确定如何解决这个问题.
使用由给定的树的定义
Run Code Online (Sandbox Code Playgroud)data Tree a = Node (Tree a) (Tree a) | Leaf a定义列表函数的树版本
zip和zipWith.在树叶或树木形状不同的情况下,您将不得不做出设计决定.尽量让你的决定尽可能优雅.
因为zip我有这个,但我不确定它是否"优雅"
zipTree :: Tree a -> Tree b -> Tree (a,b)
zipTree (Leaf a) (Leaf b) = Leaf (a,b)
zipTree (Node l1 r1) (Node l2 r2) =
let l = zipTree l1 l2
r = zipTree r1 r2
in Node l r
-- Problems...
zipTree (Node _ _) (Leaf _) = Node undefined undefined
zipTree (Leaf _) (Node _ …Run Code Online (Sandbox Code Playgroud) 看了这样的东西,但找不到确切的问题.
我从服务器端验证返回JSON,如下所示:
{
"field": ["field-name"],
"messages":["message","message"]
}
Run Code Online (Sandbox Code Playgroud)
我想做的是将其解码为榆树记录
{ field: String, messages: List String }
Run Code Online (Sandbox Code Playgroud)
但是,我遇到了错误的字段字段问题.我无法将单个元素JSON数组转换为该元素的字符串.
甚至可以使用Decode,或者我更好地将其解码为List,然后从列表中抓取头部.
这就是我对解码的看法:
valErrorDecoder : Decode.Decoder ValError
valErrorDecoder =
decode ValError
|> required "field" (Decode.list Decode.string)
|> required "messages" (Decode.list Decode.string)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
给定
type Bla = A Int | B Int
valA1 = A 1
valA2 = A 2
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以检查是否valA1已使用的构造函数构造valA2?
给定以下函数生成包含在Monad中的结果:
ab :: (Monad m) => Char -> m Bool
ab 'a' = return True
ab 'b' = return False
ab _ = fail "say what?"
Run Code Online (Sandbox Code Playgroud)
以下按照我的预期使用工作:
ab 'a' :: [Bool] -- results in [True]
ab 'c' :: [Bool] -- results in []
ab 'b' :: Maybe Bool -- results in Just b
ab 'c' :: Maybe Bool -- results in Nothing
ab 'a' :: Either String Bool -- results in Right True
Run Code Online (Sandbox Code Playgroud)
但是,有Either String,fail实际上产生了异常,但我希望它是Left …
假设我有一个类型类,对于这个类型类的每个实例我都有一个函数
f :: [Bool] -> Maybe (a, [a])
Run Code Online (Sandbox Code Playgroud)
我怎么称呼f?更准确地说,如果b是此类型类中的另一种类型,我如何指定我的意思是来自a的实例的f而不是来自b的实例?
我从api那里得到了一些数据.
{
"message":"",
"data":[
{
"title":"Test Rock Song",
"artist":"Music Artist Test",
"audioUrl":"https://xyz/radio/03+-+HS3+-+Wajah+Tum+Ho+%5BDJMaza.Info%5D.mp3",
"stateName":"California",
"cityName":"Los Angles",
"businessId":32
},
{
"title":"R&B S1",
"artist":"Music Artist Test",
"audioUrl":"https://xyz/radio/1463469171175_Ba_khuda_tumhi.mp3",
"stateName":"California",
"cityName":"Los Angles",
"businessId":32
},
{
"title":"R&B S2",
"artist":"Music Artist Test",
"audioUrl":"https://xyz/radio/1465890934054_01+-+HS3+-+Tumhe+Apna+Banane+Ka+%5BDJMaza.Info%5D.mp3",
"stateName":"California",
"cityName":"Los Angles",
"businessId":32
}
],
"count":3
}
Run Code Online (Sandbox Code Playgroud)
所以我在列表中迭代这些数据,每个都有一个mp3网址.我想当我点击链接然后特定的mp3将播放.
请任何人帮我实现此功能.
elm ×5
haskell ×3
c# ×2
ado.net ×1
alias ×1
api ×1
asp.net-mvc ×1
binary-tree ×1
constructor ×1
decoder ×1
frontend ×1
html5-audio ×1
httpmodule ×1
if-statement ×1
json ×1
linq-to-sql ×1
monads ×1
record ×1
sql-server ×1