小编The*_*dge的帖子

泛型,枚举和自定义属性 - 是否可能?

对代码量表示歉意,但更容易用这种方式解释.

我有一个自定义属性CustomUserData实现如下:

public class CustomUserData : Attribute
{
   public CustomUserData(object aUserData)
   {
      UserData = aUserData;
   }
   public object UserData { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和枚举的扩展方法如下:

public static class EnumExtensions
{
    public static TAttribute GetAttribute<TAttribute>(this Enum aValue) where TAttribute : Attribute
    {
        Type type = aValue.GetType();
        string name = Enum.GetName(type, aValue);
        return type.GetField(name)
                   .GetCustomAttributes(false)
                   .OfType<TAttribute>()
                   .SingleOrDefault();
    }

    public static object GetCustomUserData(this Enum aValue)
    {
        CustomUserData userValue = GetAttribute<CustomUserData>(aValue);
        return userValue != null ? userValue.UserData : null;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个帮助器类,它序列化/反序列化具有与之关联的自定义数据的枚举,如下所示:

public static …
Run Code Online (Sandbox Code Playgroud)

c# generics

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

使用Database.SqlQuery()的实体框架,其中列名是无效的C#成员名称

  • 实体框架6.1

我有一个存储过程,返回以下结果:

在此输入图像描述

所以这些字段名称自然不是我修改为POCO的有效标识符:

public class AdHoc_UspGetPassengerCountByAgeReturnDto
{
    public Int32? _0_18 { get; set; }
    public Int32? _19_30 { get; set; }
    public Int32? _31_40 { get; set; }
    public Int32? _41_50 { get; set; }
    public Int32? _51_60 { get; set; }
    public Int32? _61_70 { get; set; }
    public Int32? _71_80 { get; set; }
    public Int32? _81plus { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

由于属性名称更改以下内容:

public List<AdHoc_UspGetPassengerCountByAgeReturnDto> AdHoc_UspGetPassengerCountByAge(out int aProcResult)
{
    SqlParameter procResultParam = new SqlParameter {ParameterName = "@procResult", SqlDbType …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework

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

ASP.NET WebForms应用程序中后台线程的.NET SqlClient登录失败

  • ASP.NET 4.51,WebForms,VS2013

我正在使用Quartz.NET进行一些后台处理,最终我连接到我的SQL Server.这一切都在我的开发机器上针对IIS Express本地工作,但是当我将它部署到运行IIS的登台服务器时,我遇到了问题.

连接到数据库的代码不是更简单:

myConnection = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=MyDB;User ID=sa;Password=myPass");
Run Code Online (Sandbox Code Playgroud)

但是这引发了一个例外:

System.Data.SqlClient.SqlException:用户'IIS APPPOOL\somehost.somedomain.com'登录失败.

我100%确信连接字符串是正确的,因为在普通页面中使用它可以正常工作.所以扔我的是对IIS APPPOOL的引用.

SqlConnection是否以某种方式不使用它传递的连接字符串?在建立连接时做某种形式的奇怪的用户模仿?

换一种方式.当我知道连接字符串是正确的时候,如何使线程内的SqlConnection()工作?

c# sql-server asp.net iis webforms

8
推荐指数
2
解决办法
524
查看次数

Visual Studio 2017错误:无法找到项目信息""这可能表示缺少项目参考 - 使用Console App .NET Core 2.1

  • VS 15.7.5

我有一个.NET Standard 2.0类库:

在此输入图像描述

它存在于自己的解决方案中,但我现在已将其添加到不同的解决方案中,以便我可以将其与我的.NET Core 2.1控制台测试运行器一起使用:

在此输入图像描述

但是,一旦我这样做,我就会收到错误.如果我删除控制台应用程序,那么一切都编译没有错误.

那我在这里错过了什么?为什么.NET Core 2.1控制台应用程序找不到我的.NET Standard 2.0类库?

c# .net-core .net-standard

8
推荐指数
2
解决办法
1530
查看次数

C#Webforms VB.NET中的用户控件

我有一个现有的VB.NET Web项目,需要一些新的屏幕(webforms).由于多种原因,这些新屏幕将在C#中开发.已经有一个读围绕看来这确实是可能的:增加C#Web窗体VB Web应用程序,并添加C#用户控件现有的asp.net vb.net项目

不过我做了一个小测试:

  1. 包含VB WebForms应用程序项目的VB.NET解决方案
  2. 在解决方案中添加了一个新的C#ASP.NET项目
  3. 在C#程序集中创建Web用户控件
  4. 在Default.aspx中引用和使用Web用户控件1.

问题是用户控件没有显示在页面上.我在这里错过了什么 这是VB.NET WebForms应用程序中无法实现的吗?以下是相关代码:

Default.aspx的

<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="waWithCUserControl._Default" %>
<%@ Register TagPrefix="uac" Namespace="waUserControls" Assembly="waUserControls" %>

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
    <uac:UcTakeTest ID="myUserControl" runat="server" />
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

用户控制在单独的程序集waUserControls中

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ucTakeTest.ascx.cs" Inherits="waUserControls.UcTakeTest" %>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet">

    <div class="container">
        <div class="row">
            <div class="col-md-2">
                <div class="list-group">
                    <a href="#" class="list-group-item active">Question</a>
                    <a href="#" class="list-group-item">Question</a>
                    <a href="#" class="list-group-item">Question</a>
                    <a href="#" class="list-group-item">Question</a>
                    <a …
Run Code Online (Sandbox Code Playgroud)

c# vb.net asp.net webforms webusercontrol

7
推荐指数
1
解决办法
1546
查看次数

Sys.WebForms.Res未定义

  • .NET 4.51 Webforms
  • VS2013更新1

我从一个全新的Web项目开始,选择WebForms和MVC支持.在本地工作了几天没有问题.但是现在我在web上部署它我收到错误:

TypeError:Sys.WebForms.Res未定义

阅读其他帖子后,这似乎与ScriptManager等有关.以下是我的母版页脚本管理器块:

<asp:ScriptManager runat="server">
    <Scripts>
        <%--To learn more about bundling scripts in ScriptManager see http://go.microsoft.com/fwlink/?LinkID=301884 --%>
        <%--Framework Scripts--%>

        <%--<asp:ScriptReference Name="jquery" />--%>   
        <asp:ScriptReference Name="MsAjaxBundle" />
        <asp:ScriptReference Name="bootstrap" />
        <asp:ScriptReference Name="respond" />
        <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
        <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
        <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
        <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
        <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
        <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
        <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
        <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
        <asp:ScriptReference Name="WebFormsBundle" />      
        <%--Site Scripts--%> …
Run Code Online (Sandbox Code Playgroud)

asp.net ajax webforms

7
推荐指数
1
解决办法
5087
查看次数

MVC 3,IIS 8.5部署= 404 - 找不到文件或目录

我有一个使用Entity Framework 4.1和.NET 4的现有部署的ASP.NET MVC3应用程序,我需要将其复制到新服务器上.问题是我很少或没有关于如何配置部署环境的文档.从好的方面来说,我可以管理员访问部署环境,并可以完全访问应用程序的源代码.

所以从裸机开始我有:

  • 全新安装Windows Server 2012,SQL Server 2014 Enterprise
  • 通过Web平台安装程序安装MVC 3和工具

在此输入图像描述

  • 将整个网站从现有部署复制到C:\ inetpub下的自己的文件夹
  • 在IIS下添加了网站,并在配置为的应用程序池中启动了它

在此输入图像描述

在此输入图像描述

  • 各种读数表明偶尔这是由于"UrlRoutingModule-4.0"没有安装在模块中.事实并非如此,我添加了相同的服务器范围并确保它出现在网站上(没有区别):

在此输入图像描述

  • 还提到确保web.config中存在runAllManagedModulesForAllRequests ="true",它是

UPDATE

安装.NET:

在此输入图像描述

所以在我发布"失败的请求跟踪"之前,任何人都可以向我提出有关如何让MVC在此环境中工作的任何建议吗?

我读过可能SO帖子和谷歌搜索,但似乎没有任何工作.

iis asp.net-mvc-3

7
推荐指数
0
解决办法
4523
查看次数

C#6.0,.NET 4.51和VS2015 - 为什么字符串插值有效?

阅读以下内容后:

在我看来,除了String Interpolation,我在VS2015中针对.NET 4.51编译的任何项目都可以使用新的C#语言功能.

但是我使用VS2015定位4.51在我的开发机器上尝试了以下代码:

string varOne = "aaa";

string varTwo = $"{varOne}";

if (varTwo == "aaa")
{

}
Run Code Online (Sandbox Code Playgroud)

并且我不仅没有收到编译器错误,它的工作原理varTwo 包含aaa,如预期的那样.

有人可以解释为什么会这样,因为我不希望这个工作吗?我猜我错过了FormattableString的真正含义.有人能举个例子吗?

.net c# c#-6.0

7
推荐指数
2
解决办法
4289
查看次数

madSHI MadExcept等效于.NET(C#)

我是一名C#新手,花了很多时间在Delphi上我正在转向.NET.用于异常堆栈报告等的一个很好的包是疯狂的,除了http://madshi.net/madExceptScreenShots.htm.

有没有相当于.NET(C#)的东西.我所追求的是在发生异常时为我提供堆栈跟踪的东西.如果是这样,我假设我将必须部署调试版本的程序集,因为它将具有必要的符号信息?或者我可以提供单独的调试MAP文件吗?

所有指针都非常感谢.

c# delphi

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

动态数据IObjectContextAdapter缺少引用

我重新安装了VS2012和Update 2.我创建了一个新的"ASP.NET动态数据实体Web应用程序"项目.然后我添加了一个"ADO.NET实体数据模型",它是从现有的SQLServerExpress数据库生成的.

但是,当我去构建解决方案时,我收到以下错误:

找不到类型或命名空间名称'IObjectContextAdapter'(您是否缺少using指令或程序集引用?)

这似乎是在声明,System.Data.Entity.Infrastructure但我无法在任何地方找到那个集会.我已经验证我已经为解决方案安装了EF5,因为我的packages.config显示:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="EntityFramework" version="5.0.0" targetFramework="net45" />
</packages>
Run Code Online (Sandbox Code Playgroud)

EntityFramework引用属性显示:

RuntimeVersion:v4.0.30319
版本:5.0.0.0

在web.config我有:

  <assemblies>
    <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
  </assemblies>
Run Code Online (Sandbox Code Playgroud)

这看起来不对,因为应该说5.0.0.0?然而,改变它没有任何影响.有人可以指点我正确的方向吗?

c# asp.net entity-framework-5

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