小编Ric*_*der的帖子

我的Lazy <> value工厂中的InvalidOperationException

我有一个包含以下内容的类:

public static class Config
{
    private static Lazy<ConfigSource> _cfgSrc = new Lazy<ConfigSource>(
        () => { /* "ValueFactory" here... */ },
        true);

    public static ConfigSource ConfigSource
    {
        get { return _cfgSrc.Value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

在访问该ConfigSource属性时,我遇到了这个InvalidOperationException:

ValueFactory尝试访问此实例的Value属性.

我在访问该Value属性的"值工厂"方法中看不到任何内容.还有什么可以触发这个例外吗?此问题只是间歇性地发生,但一旦发生,它需要重置IIS以清除异常(一旦发生就会缓存).

c# .net-4.0 lazy-evaluation

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

N'在SQL脚本中代表什么?(在插入脚本中的字符之前使用的那个)

我生成了这样的sql脚本,

INSERT [dbo].[TableName] ([Sno], [Name], [EmployeeId], [ProjectId], [Experience]) 
VALUES (1, N'Dave', N'ESD157', N'FD080', 7)
Run Code Online (Sandbox Code Playgroud)

我想知道N'究竟是什么意思,它的目的是什么呢.

注意:通过搜索答案我可以得到的是N'是国家语言标准的前缀及其使用unicode数据的前缀.但老实说,我无法在这里明确了解N'的确切操作.我很感激你的帮助,请以更容易理解的方式来表达.提前致谢.

c# database asp.net

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

Jquery:ajax发布和编码

我无法理解为什么我无法从服务器答案中获得正确的ISO-8859-1 charstet.作为遗留代码的工作,我几乎不能改变页面上的字符集编码.

我使用了JQuery调用

$.post("server-side-code", {t:ctext, i:ioff, sid:sessionid},  
    function(data, status) {            
       $('#chk').append(data); 
     });
Run Code Online (Sandbox Code Playgroud)

发布使用javascript创建的textarea值:

<form accept-charset='ISO-8859-1' method='post'>
<textarea cols='40' rows='8' id='commento'></textarea><br>
<input type='button' value='invia' id='submit'></form>
Run Code Online (Sandbox Code Playgroud)

处理请求的服务器端脚本在其顶部声明:

text/html; charset=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

所以,老实说,我无法弄清楚我应该在编码方面声明什么.尽管如此,当将服务器答案放在HTML元素中时,重音字符"àèéìòù"会反弹为:"ÃÃÃÃ"ÃÃÃ"Ã"

源保存为ascii.尝试执行此操作以对要发布的变量进行基本的Html编码无法解决:

ctext = escapeHTML(ctext);

function escapeHTML (str)
{
   var div = document.createElement('div');
   var text = document.createTextNode(str);
   div.appendChild(text);
   return div.innerHTML;
}; 
Run Code Online (Sandbox Code Playgroud)

有些想法?

谢谢!

jquery

9
推荐指数
1
解决办法
6万
查看次数

在Json.Net中生成换行而不是CRLF

对于我的unix/java朋友,我想在Json.Net中发送换行符('\n')而不是CRLF('\ r \n').我尝试将StreamWriter设置为使用换行而没有任何成功.

我认为Json.Net代码正在使用Environment.NewLine而不是调用TextWriter.WriteNewLine().更改Environment.NewLine不是一个选项,因为我作为服务器运行,并且换行编码基于请求.

有没有其他方法来强制换取crlf?

这是我的代码 -

using (var streamWriter = new StreamWriter(writeStream, new UTF8Encoding(false))
{
     NewLine = "\n"
})
using (var jsonWriter = new JsonTextWriter(streamWriter) 
{ 
     CloseOutput = true, 
     Indentation = 2, 
     Formatting = Formatting.Indented 
})
{
       // serialise object to JSON
}
Run Code Online (Sandbox Code Playgroud)

c# json json.net

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

Dapper歧义扩展方法

我正在将Dapper作为ORM解决方案进行测试,并且遇到了某些扩展方法(例如Execute或)的问题QueryMultiple

using (SQLiteConnection con = new SQLiteConnection(GetConnectionString()))
{
    con.Open();
    string sql = @"
        select * from Customer where Id = @id;
        select * from Address where CustomerId = @id;";

    // QueryMultiple extension ambiguous?
    using (var multi = con.QueryMultiple(sql, new { id = 1 }))
    {
        Customer customer = multi.Read<Customer>().Single();
        Address address = multi.Read<Address>().Single();
    }

    con.Close();
}
Run Code Online (Sandbox Code Playgroud)

我得到错误

在以下方法或属性之间的调用是模棱两可的:'Dapper.SqlMapper.QueryMultiple(System.Data.IDbConnection,字符串,对象,System.Data.IDbTransaction,int ?, System.Data.CommandType?)'和'Dapper.SqlMapper .QueryMultiple(System.Data.IDbConnection,string,dynamic,System.Data.IDbTransaction,int ?, System.Data.CommandType?)'

而且不知道如何正确解决这个问题。Dapper的例子没有提到这样的问题,只是使用了QueryMultiple。我能够使用以下方式避免歧义

var multi = con.QueryMultiple(new CommandDefinition(sql, new { id = 1 …
Run Code Online (Sandbox Code Playgroud)

c# dapper

9
推荐指数
1
解决办法
1337
查看次数

查找以JSON Path开头的JSON属性名称

是否可以使用JSON Path 找到与正则表达式模式(或至少以其开头)匹配的属性名称.在XPath中我可以使用,name()但我无法找到等效的JSON路径.

基本上,我找到了所有以属性开头的属性名称x-.有点像$..x-*.

我会对使用任何执行此操作的javascript包感兴趣.目前,我正在使用JSONPath.

javascript xpath jsonpath node.js

9
推荐指数
2
解决办法
4423
查看次数

丢失HtmlAgilityPack loadhtml中的"小于"符号

我最近开始尝试使用HtmlAgilityPack.我不熟悉它的所有选项,我认为因为我做错了.

我有一个包含以下内容的字符串:

string s = "<span style=\"color: #0000FF;\"><</span>";
Run Code Online (Sandbox Code Playgroud)

你看,在我的范围内,我有一个"小于"的标志.我使用以下代码处理此字符串:

HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(s);
Run Code Online (Sandbox Code Playgroud)

但是当我在这样的范围内做一个快速而肮脏的外观时:

htmlDocument.DocumentNode.ChildNodes[0].InnerHtml
Run Code Online (Sandbox Code Playgroud)

我看到跨度是空的.

我需要设置什么选项来维持"小于"的符号.我已经尝试过了:

htmlDocument.OptionAutoCloseOnEnd = false;
htmlDocument.OptionCheckSyntax = false;
htmlDocument.OptionFixNestedTags = false;
Run Code Online (Sandbox Code Playgroud)

但没有成功.

我知道它是无效的HTML.我使用它来修复无效的HTML并在'小于'符号上使用HTMLEncode

请指导我正确的方向.提前致谢

html c# html-agility-pack

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

编译查询没有对ObjectContext的隐式引用转换

我正在创建一个委托来检索数据库中的所有专辑记录.我在另一个项目中使用了相同的方法,但由于某种原因我这次收到错误.

我错过了一步吗?我不确定为什么会出现这个错误.

        public static readonly Func<CodySolutionEntities, IQueryable<Album>> SelectAlbums =
        CompiledQuery.Compile<CodySolutionEntities, IQueryable<Album>>(
            query => from q in query.Albums.Include("Photo")
                     select q);
Run Code Online (Sandbox Code Playgroud)

错误

错误1类型'CodyData.Diagram.CodySolutionEntities'不能用作类型 parameter 'TArg0' in the generic type or method 'System.Data.Objects.CompiledQuery.Compile<TArg0,TResult>(System.Linq.Expressions.Expression<System.Func<TArg0,TResult>>)'. There is no implicit reference conversion from 'CodyData.Diagram.CodySolutionEntities' to 'System.Data.Objects.ObjectContext'. C:\Users\Cody\Documents\CMBS\CodySolution\CodyData\Delegates\PhotoDelegates.cs 13 13 CodyData

c# asp.net compiled-query objectcontext

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

两个浮点数之间的随机数生成

我试图在两个浮点数之间生成一个随机数(最大值增加一半)

这是我到目前为止所做的,但它不起作用

    //range
    NSString *minString = [dict objectForKey:@"min"];
    float minRange = [minString floatValue];
    NSString *maxString = [dict objectForKey:@"max"];
    float maxRange = [maxString floatValue];

    NSLog(@"the ORIGINAL range is %f - %f", minRange, maxRange);

    maxRange = maxRange + (maxRange/2);

    //If you want to get a random integer in the range x to y, you can do that by int randomNumber = (arc4random() % y) + x;

    float randomNumber = (arc4random() % maxRange) + minRange; //ERROR: "Invalid operands to binary expression ('float' and …
Run Code Online (Sandbox Code Playgroud)

random floating-point objective-c

6
推荐指数
1
解决办法
7446
查看次数

2次调用或单次调用sql server

我在.net应用程序中有一个操作,它在2个不同的sql server表中创建一条记录.这里的最佳做法是什么?

一个存储过程是否应创建两个记录?或者不同的存储过程是否应在适用的数据库中创建每个记录并在事务中包装两个调用,如果一个失败,则两个都失败?

哪个性能更高?

c# sql-server stored-procedures transactions

6
推荐指数
1
解决办法
120
查看次数