小编jga*_*fin的帖子

为多个接口返回相同的实例

我正在使用以下代码注册组件:

StandardKernel kernel = new StandardKernel();

string currentDirectory = Path.GetDirectoryName(GetType().Assembly.Location)
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
    if (!Path.GetDirectoryName(assembly.Location).Equals(currentDirectory)) 
        continue;

    foreach (var type in assembly.GetTypes())
    {
        if (!type.IsComponent()) 
            continue;

        foreach (var @interface in type.GetInterfaces())
        kernel.Bind(@interface).To(type).InSingletonScope();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个实现两个接口的类:

class StandardConsole : IStartable, IConsumer<ConsoleCommand>
Run Code Online (Sandbox Code Playgroud)

如果我解决了IStartable我得到一个实例,如果我解决IConsumer<ConsoleCommand>我得到另一个.

如何为两个接口获取相同的实例?

c# singleton autofac

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

如何在Razor中的ActionLinks上指定css类名?

以下代码生成错误:

@Html.ActionLink("Title", "action", new { id=1 }, new { @class = "myCssClass" });
Run Code Online (Sandbox Code Playgroud)

我尝试使用@,因为它class是一个关键字.使用剃须刀时应该怎么写呢?

编辑

问题不是真正的符号,但是我没有和我一起使用块if:

@if (blabla)
    @Html.ActionLink("Title", "action", new { id=1 }, new { @class = "myCssClass" });
Run Code Online (Sandbox Code Playgroud)

作品:

@if (blabla)
{
    @Html.ActionLink("Title", "action", new { id=1 }, new { @class = "myCssClass" });
}
Run Code Online (Sandbox Code Playgroud)

因为他们让我意识到这个问题所以投了两个答案.

asp.net-mvc razor

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

"连接尝试失败,因为连接方在一段时间后没有正确响应"使用WebClient

我正在使用以下代码在本地机器上工作,但当我在服务器上尝试相同的代码时,它会抛出我的错误

连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应

这是我的代码:

WebClient client = new WebClient();
// Add a user agent header in case the 
// requested URI contains a query.
//client.Headers.Add ("ID", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
Stream data = client.OpenRead("http://" + Request.ServerVariables["HTTP_HOST"] + Request.ApplicationPath + "/PageDetails.aspx?ModuleID=" + ID);
StreamReader reader = new StreamReader(data);
string s = reader.ReadToEnd();
Console.WriteLine(s);
data.Close();
reader.Close();
Run Code Online (Sandbox Code Playgroud)

我收到了错误

Stream data = client.OpenRead("http://" + Request.ServerVariables["HTTP_HOST"] + Request.ApplicationPath + "/PageDetails.aspx?ModuleID=" + ID);
Run Code Online (Sandbox Code Playgroud)

是因为任何防火墙设置?

c# sockets webclient

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

从Request.Url.AbsolutePath获取应用程序相对URL

如何从应用程序获取相关URL Request.Url.AbsolutePath

VirtualPathUtility似乎只适用于~/XXX网址?

c# asp.net

28
推荐指数
4
解决办法
5万
查看次数

C#:声明和使用不同类型的泛型类列表,如何?

具有以下通用类,其中包含以下string, int, float, long类型:

public class MyData<T>
{
    private T _data;

    public MyData (T value)
    {
        _data = value;
    }

    public T Data { get { return _data; } }
}
Run Code Online (Sandbox Code Playgroud)

我想弄清楚MyData<T>每个项目的不同之处T.

我希望能够从列表中访问项目并获取其值,如下面的代码所示:

MyData<> myData = _myList[0];    // Could be <string>, <int>, ...
SomeMethod (myData.Data);
Run Code Online (Sandbox Code Playgroud)

其中,SomeMethod()声明如下:

public void SomeMethod (string value);
public void SomeMethod (int value);
public void SomeMethod (float value);
Run Code Online (Sandbox Code Playgroud)

更新:

SomeMethod()来自另一个我无法控制SomeMethod(object)但不存在的等级.


但是,我似乎无法找到让编译器开心的方法.

有什么建议?

谢谢.

.net c# generics list

27
推荐指数
3
解决办法
4万
查看次数

Environment.CurrentDirectory和Directory.GetCurrentDirectory有什么区别?

在.NET中有什么区别:

  • Environment.CurrentDirectory
  • Directory.GetCurrentDirectory()

当然,Environment.CurrentDirectory是可以设置和获得的属性.

还有其他差异吗?

.net c#

27
推荐指数
2
解决办法
8851
查看次数

无法在global.asax/Application_Start中断

我在第一行得到了一个断点Application_Start(),但Visual Studio不会破坏它.

Visual Studio已将自己附加到IIS工作进程:

自动连接到机器'SRD00510'上的'[2092] w3wp.exe'处理成功.

我在家庭控制器中的断点确实有效.

更新

我试过了:

  • iisreset
  • 重启视觉工作室
  • 重新启动.
  • 试图重新安装aspnet(aspnet_regiis -i)

c# visual-studio-2010 visual-studio-debugging asp.net-mvc-3

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

何时用NoSQL替换RDBMS/ORM

使用NoSQL数据库而不是ORM包装的rdbms会有哪些项目受益?

例子:

  • Stackoverflow类似的网站?
  • 社交社区?
  • 论坛?

rdbms nosql

24
推荐指数
1
解决办法
8094
查看次数

创建使用.NET 4.0的应用程序池

我使用以下代码创建一个应用程序池:

var metabasePath = string.Format(@"IIS://{0}/W3SVC/AppPools", serverName);
DirectoryEntry newpool;
DirectoryEntry apppools = new DirectoryEntry(metabasePath);
newpool = apppools.Children.Add(appPoolName, "IIsApplicationPool");
newpool.CommitChanges();
Run Code Online (Sandbox Code Playgroud)

如何指定应用程序池应使用.NET Framework 4.0?

c# iis-7 directoryservices application-pool

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

计算字符串的校验和

我有一个任意长度的字符串(比如5到2000个字符),我想计算一个校验和.

要求

  • 每次对字符串进行计算时,必须返回相同的校验和
  • 校验和必须是唯一的(没有碰撞)
  • 我无法存储以前的ID来检查冲突

我应该使用哪种算法?

更新:

  • 有没有合理独特的方法?即碰撞的可能性非常小.
  • 校验和应为字母数字
  • 字符串是unicode
  • 字符串实际上是应该翻译的文本,校验和与每次翻译一起存储(因此翻译后的文本可以与原始文本匹配).
  • 校验和的长度对我来说并不重要(越短越好)

UPDATE2

假设我得到以下字符串"Welcome to this website. Navigate using the flashy but useless menu above".

该字符串在视图中以与gettextlinux中类似的方式使用.即用户只是写(在剃须刀视图中)

@T("Welcome to this website. Navigate using the flashy but useless menu above")
Run Code Online (Sandbox Code Playgroud)

现在我需要一种方法来识别该字符串,以便我可以从数据源中获取它(有几种数据源实现).必须使用整个字符串作为键似乎有点低效,因此我正在寻找一种方法来生成一个密钥.

c#

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