小编Cod*_*aos的帖子

在Razor中使用站点根相对链接

我有一个网站,使用Razor(C#)工作正常,当我使用我的本地测试(WebMatrix IIS)时,所有编码都正常工作.

当我把它"在线"放在我的服务器上时,网站不是它自己的网站的根

例如:

http:// intranet.mycompany.com/inform

这基本上是我的文件夹结构的"根",所以我的所有文件夹都从那里开始(css文件default.cshtml ...等等)

当我从链接http://intranet.mycompany.com/inform访问我的网站时,我的"_PageStart.cshtml"正确地看到它,它给了我在_PageStart.cshtml中配置的布局(它真的显示了布局+呈现default.cshtml)

但没有其他任何东西正在获得正确的道路,例如:

<img src="~/images/logos/hdr.png" />
Run Code Online (Sandbox Code Playgroud)

img持有人在那里我可以看到它,但显示链接被破坏...当我右键单击img持有者并执行属性以查看文件应该在哪里它显示我:

http:// intranet.mycompany.com/images/logos/hdr.png

所以它是"完整"根而不是相对根...

我该如何解决这个问题?

c# asp.net razor

53
推荐指数
2
解决办法
6万
查看次数

在.NET中依赖&&短路安全吗?

假设myObj为null.写这个是安全的吗?

if(myObj != null && myObj.SomeString != null)
Run Code Online (Sandbox Code Playgroud)

我知道有些语言不会执行第二个表达式,因为在执行第二个部分之前&&的计算结果为false.

.net c# operators short-circuiting logical-operators

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

缓存反射数据

缓存从反射获得的昂贵数据的最佳方法是什么?例如,大多数快速序列化程序都会缓存此类信息,因此无需在每次遇到相同类型时进行反映.他们甚至可以生成一个动态方法,从类型中查找.

之前.net 4

传统上我使用了普通的静态字典.例如:

private static ConcurrentDictionary<Type, Action<object>> cache;

public static DoSomething(object o)
{
    Action<object> action;
    if(cache.TryGetValue(o.GetType(), out action)) //Simple lookup, fast!
    {
        action(o);
    }
    else
    {
        // Do reflection to get the action
        // slow
    }
} 
Run Code Online (Sandbox Code Playgroud)

这会泄漏一点内存,但是因为它只对每种类型和类型执行一次,只要AppDomain我不认为这是一个问题.

自.net 4

但是现在.net 4引入了用于动态类型生成的可收集组件.如果我曾经使用过可DoSomething收集组件中声明的对象,那么组件将不会被卸载.哎哟.

那么在.net 4中缓存每种类型信息的最佳方法是什么?没有遇到这个问题?我能想到的最简单的解决方案是:

private static ConcurrentDictionary<WeakReference, TCachedData> cache.
Run Code Online (Sandbox Code Playgroud)

IEqualityComparer<T>我必须使用它会表现得非常奇怪,也可能违反合同.我不确定查找的速度有多快.

另一个想法是使用到期超时.可能是最简单的解决方案,但感觉有点不雅.


在类型作为通用参数提供的情况下,我可以使用嵌套的泛型类,它不应该遇到这个问题.但是如果在变量中提供类型,则它不起作用.

class MyReflection
{
    internal Cache<T>
    {
        internal static TData data;
    }

    void DoSomething<T>()
    {
        DoSomethingWithData(Cache<T>.data);
        //Obviously simplified, should have …
Run Code Online (Sandbox Code Playgroud)

.net c# garbage-collection .net-assembly

49
推荐指数
1
解决办法
8454
查看次数

a =(a ++)*(a ++)在Java中给出奇怪的结果

我正在攻读OCPJP考试,因此我必须了解Java的每一个奇怪的细节.这包括增量前和增量后运算符应用于变量的顺序.以下代码给出了奇怪的结果:

int a = 3;

a = (a++) * (a++);

System.out.println(a); // 12
Run Code Online (Sandbox Code Playgroud)

答案不应该是11吗?或者13?但不是12!

跟进:

以下代码的结果是什么?

int a = 3;

a += (a++) * (a++);

System.out.println(a);
Run Code Online (Sandbox Code Playgroud)

java operator-precedence post-increment ocpjp

45
推荐指数
8
解决办法
7145
查看次数

在泛型中使用Statement:使用ISet <> = System.Collections.Generic.ISet <>

由于我使用两个不同的通用集合名称空间(System.Collections.GenericIesi.Collections.Generic),我有冲突.在项目的其他部分,我使用的是nunit和mstest框架,但是当我打电话时Assert我想要使​​用nunit版本

using Assert = NUnit.Framework.Assert;
Run Code Online (Sandbox Code Playgroud)

哪个效果很好,但我想用泛型类型做同样的事情.但是,以下行不起作用

using ISet = System.Collections.Generic.ISet;
using ISet<> = System.Collections.Generic.ISet<>;
Run Code Online (Sandbox Code Playgroud)

有谁知道如何告诉.net如何使用泛型的using语句?

c# generics syntax alias using

40
推荐指数
3
解决办法
6539
查看次数

将int转换为带有前导零的十六进制

如何在XX XX XX XX没有循环的情况下将int(4字节)转换为十六进制(" ")?

例如:

i=13 hex="00 00 00 0D"
Run Code Online (Sandbox Code Playgroud)

i.ToString("X")返回"D",但我需要一个4字节的十六进制值.

c# hex string-formatting

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

整数的对称双射算法

我需要一种能够将32位有符号整数与另一个32位有符号整数进行一对一映射(即无冲突)的算法.

我真正关心的是足够的熵,因此函数的输出似乎是随机的.基本上我正在寻找类似于XOR Cipher的密码,但它可以生成更多任意外观的输出.虽然默默无闻,但安全并不是我真正关心的问题.

编辑以便澄清:

  1. 算法必须是对称的,这样我就可以在没有密钥对的情况下反转操作.
  2. 该算法必须是双射的,每个32位输入数必须生成一个32位唯一编号.
  3. 函数的输出必须足够模糊,只在输入中添加一个应该对输出产生很大影响.

预期结果示例:

F(100)= 98456
F(101)= -758F
(102)= 10875498
F(103)= 986541
F(104)= 945451245
F(105)= -488554

就像MD5一样,改变一件事可能会改变很多事情.

我正在寻找一个数学函数,所以手动映射整数不是我的解决方案.对于那些提出要求的人来说,算法速度并不是很重要.

algorithm encryption-symmetric bijection block-cipher

32
推荐指数
5
解决办法
5128
查看次数

如何在OpenCL中获得"随机"数字

我想在OpenCL中获得一个随机数.它不必是真正的随机或甚至是随机的.只需简单快捷的东西.

我看到在OpenCL中有大量真正的随机并行花式裤子随机算法,就像成千上万行.我不需要那样的东西.一个简单的'random()'就可以了,即使很容易看到它的模式.

我看到有一个Noise功能?有什么简单的方法来获取随机数?

opencl

32
推荐指数
4
解决办法
2万
查看次数

为什么在Visual Studio中将"false"这个词写成蓝色,将"FALSE"这个词写成紫色?

为什么Visual Studio会根据输入的方式更改单词颜色:

false蓝色,但FALSE有紫色.
true蓝色但TRUE有紫色.

它们的含义是否有任何区别,如果是,它是什么?

c++ ide syntax-highlighting visual-studio

29
推荐指数
3
解决办法
3475
查看次数

如何编写一个类(如数组)可以用`arr [key]`索引?

像我们一样Session.Add("LoginUserId", 123); ,然后我们可以Session["LoginUserId"]像Array一样访问它们如何实现它?

.net c# arrays indexer

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