小编Jim*_*m B的帖子

为什么我需要引用这个程序集,即使它没有被使用

我有一个如下的架构:

数据(处理我们的实体框架的类库)
组件(引用数据库的中间层类库)
WebOffice(引用组件库的Web应用程序,但不是数据库)

现在,我有以下代码片段(它存在于我们的Components.Payment.cs中;并且tblPayment包含在我们的数据库中.):

    public static Payment Retrieve(int id)
    {
        var t = repository.Retrieve(id);
        //the above line returns a tblPayment object
        if (t != null)
            return new Payment(t);
        return null;
    }


    public static Payment Retrieve(tblPayment tblPayment)
    {
        return new Payment(tblPayment);
    }
Run Code Online (Sandbox Code Playgroud)

我添加之后; WebOffice项目给出以下错误:
errorCS0012:类型'Data.Model.tblPayment'在未引用的程序集中定义.您必须添加对程序集'Data,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 749b8697f3214861'的引用.

现在,这对我来说没有多大意义,因为WebOffice项目根本没有调用Retrieve(tblPayment tblPayment)方法.(那只在组件库中使用)

有什么理由要求数据参考?我是否需要引用引用库引用的每个库?(试着快说5次......)

c# assemblies reference .net-3.5

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

修改从ObjectDataSource返回的集合

关于我正在做的事情的一些快速背景:

  • 我有一个页面,RadGrid绑定到ObjectDataSource,返回一个对象集合
  • 在那页上; 我也有两个清单; 一个包含需要与从ObjectDataSource返回的集合合并的对象的ID,另一个包含需要从该集合中删除的对象的ID
  • 目前处理这个问题的过程非常糟糕; 当一个项目被添加到这两个列表中的任何一个; 调用一个单独的方法,将myDataSource.Select()的结果转储到变量中,然后执行操作.然后网格清除其DataSourceId,并将该集合分配给DataSource属性,然后调用DataBind.(基本上解开ObjectDataSource并使用手动数据绑定代替)

我的问题如下:是否有可能以某种方式"拦截"从ObjectDataSource返回的集合,以便我可以在将集合传递给RadGrid之前对其进行操作?

如果这是不可能的; 这不是一个破坏者.我相信我可以修改Select()方法来接受这两个列表; 并在那里进行操作.我的另一个途径是为网格实现NeedDataSource()事件,并在那里进行操作.

理想情况下,我想使用第一个选项.有没有人成功这样做过?

c# data-binding objectdatasource telerik radgrid

5
推荐指数
1
解决办法
860
查看次数

SQL Server 2005 - 在比较中使用Null

这更像是一个满足我自己好奇心的问题.鉴于以下声明:

DECLARE @result BIT
SET @result = CASE WHEN NULL <> 4 THEN 0
                   ELSE 1
              END
PRINT @result
Run Code Online (Sandbox Code Playgroud)

为什么我回到"1"而不是"0"

将其更改为:

DECLARE @result BIT
SET @result = CASE WHEN NULL IS NULL
                        OR NULL <> 4 THEN 0
                   ELSE 1
              END
PRINT @result
Run Code Online (Sandbox Code Playgroud)

正确地给我回"0"

我知道NULL比较可能很棘手,但这个特殊的例子在我们的代码审查过程中滑落了.

任何澄清将不胜感激

sql comparison null sql-server-2005

4
推荐指数
1
解决办法
1982
查看次数

升级到Visual Studio 2010后使用'var'时出错

我们刚刚从VS2008升级到VS2010.

我们的项目编制得很好; 但是当我们运行Web应用程序时,打开Default.aspx时会出现以下错误:

'/'应用程序中的服务器错误.编译错误说明:在编译服务此请求所需的资源期间发生错误.请查看以下特定错误详细信息并相应地修改源代码.

编译器错误消息:CS0246:找不到类型或命名空间名称'var'(您是否缺少using指令或程序集引用?)

打开页面并将鼠标放在'var'声明上,VS2010正确识别出它的类型是RegEx.

我想在升级过程中我们的web.config或machine.config中可能会发生一些时髦的事情.

以前有人遇到过这个问题吗?任何帮助将不胜感激,希望它可以节省我一些时间潜入这些文件.

编辑: 这是代码的相关部分,它正在爆炸:

Line 10:    protected void valSearchFreeText_ServerValidate(object source, ServerValidateEventArgs args)
Line 11:    {
Line 12:        var url = new Regex(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?", RegexOptions.IgnoreCase);
Line 13:        var html = new Regex(@"[<,>]", RegexOptions.IgnoreCase);
Line 14:        args.IsValid = !html.IsMatch(args.Value) && !url.IsMatch(args.Value);
Run Code Online (Sandbox Code Playgroud)

我不相信.NET 4.0是原因; 我们只从VS2008升级到VS2010; 我们没有从.NET 3.5迁移到.NET 4.0

我将仔细检查ASP.NET开发服务器与IIS,并在几分钟后回复结果.它绝对是从开发服务器抛出的.

编辑2 这是从开发服务器和IIS抛出的.System.Xml.Linq也包含在我们的web.config的程序集部分中:

<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Run Code Online (Sandbox Code Playgroud)

c# web-applications visual-studio-2010

4
推荐指数
1
解决办法
1949
查看次数

什么时候创建Control.UniqueId?

有人知道控件的UniqueId何时被分配?

现在我的Page_Init中有一些基于UniqueId的代码.但是,根据某些业务逻辑,我可能需要在发生这种情况之前重新排列页面的控件层次结构.

所以,我的主要问题是,什么时候分配了UniqueId?我是否有可能重新排列Page_PreInit()中的层次结构,以便当我的代码在Page_Init()中触发时,我将分配适当的UniqueId?

c# asp.net page-lifecycle .net-3.5 unique-id

4
推荐指数
1
解决办法
2373
查看次数

确定每个控件在ViewState中存储的数据量

可能重复:
如何解码viewstate

我有一个相当复杂的页面,我正在研究,有很多用户控件,中继器等.

ViewState该网页上已经膨胀到超过4MB,这是造成一"Maximum Request Length Exceeded"回发错误.临时修复将增加maxRequestLength属性HttpRuntime,但这不是修复根问题.

是否有人知道我如何检查/查询ViewState以查看哪些控件是最大的违规者?我想尝试避免的是花费大量时间来优化控件,这样只能节省几美元,而页面上还有其他一些可能会在ViewState中存储几百KB

谢谢!

c# asp.net viewstate optimization .net-4.0

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

使用File.Open获取WPF资源

我在下面有以下代码.高级概述是它是一个从文件共享中获取.emf文件的转换器,然后将其转换为WPF可用于Image.Source的内容:

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var fileName = (string)value;
        if (fileName == null)
            return new BitmapImage();
        using (var stream = File.Open(fileName, FileMode.Open))
        {
            return GetImage(stream);
        }
    }

    internal BitmapImage GetImage(Stream fileStream)
    {
        var img = Image.FromStream(fileStream);
        var imgBrush = new BitmapImage();
        imgBrush.BeginInit();
        imgBrush.StreamSource = ConvertImageToMemoryStream(img);
        imgBrush.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
        imgBrush.EndInit();
        return imgBrush;
    }

    public MemoryStream ConvertImageToMemoryStream(Image img)
    {
        var ms = new MemoryStream();
        img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
        return ms;
    } 
Run Code Online (Sandbox Code Playgroud)

现在,这里的一切都很好.用户将需要一个"打印校准"页面,因此我将"SampleDoc.emf"文件包含在我的应用程序中并将其标记为资源.

但是,当指向该资源文件时,我似乎无法使File.Open()部分正确.有关如何做到这一点的任何想法?

io wpf resources

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

将UserControl的SelectedValue绑定到ViewModel

在我的解决方案; 我有两个项目:一个是WPF UserControl库,另一个是WPF应用程序.

用户控件非常简单; 它是一个标签和一个组合框,将显示已安装的打印机.

在WPF应用程序中; 我想使用这个usercontrol.所选值将存储在用户设置中.

我遇到的问题是我似乎无法获得正确的绑定工作.我需要做的是能够在MainWindow加载时设置UserControl的SelectedValue; 以及当我去保存我的设置时访问UserControl的SelectedValue.

我的代码在下面,有人能指出我正确的方向吗?

PrintQueue用户控件:

<UserControl x:Class="WpfControls.PrintQueue"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:wpfControls="clr-namespace:WpfControls"
             mc:Ignorable="d">
    <UserControl.DataContext>
        <wpfControls:PrintQueueViewModel/>
    </UserControl.DataContext>
    <Grid>
        <StackPanel Orientation="Horizontal">
            <Label Content="Selected Printer:"></Label>
            <ComboBox ItemsSource="{Binding Path=PrintQueues, Mode=OneWay}" DisplayMemberPath="Name" SelectedValuePath="Name" Width="200" SelectedValue="{Binding Path=SelectedPrinterName, Mode=TwoWay}"></ComboBox>
        </StackPanel>
    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

打印队列代码隐藏:

public partial class PrintQueue : UserControl
{
    public static readonly DependencyProperty CurrentPrinterNameProperty =
        DependencyProperty.Register("CurrentPrinterName", typeof (string), typeof (PrintQueue), new PropertyMetadata(default(string)));

    public string CurrentPrinterName
    {
        get { return (DataContext as PrintQueueViewModel).SelectedPrinterName; }
        set { (DataContext as PrintQueueViewModel).SelectedPrinterName = value; …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml user-controls

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

在嵌套ListView中访问父DataItem

所以我有两个列表视图; 一个嵌套在另一个里面.

父被绑定到包含字段,诸如MaxPrice,MinPrice,和SuggestedProducts对象的集合.

嵌套的一个绑定到父项的SuggestedProducts集合.

我如何在嵌套列表视图中引用MaxPrice和MinPrice?它甚至可能吗?

如果您需要任何澄清,请给我留言,我会更新我的问题.

谢谢!

编辑:这是一个ASP.NET ListView

c# asp.net data-binding listview nested

2
推荐指数
1
解决办法
6052
查看次数

嵌套控件可见性问题

今天早上在处理bug时注意到这一点.我的页面上有这样的内容:

<div id="dvDropShipMsgWrap" runat="server" visible="false" class="systemMsgCon">
    <div id="dvDropShipMsg" class="systemMsg plus">
        <asp:Label ID="lblAttributeDropShipMsg" runat="server" ForeColor="#333333" Visible="false"
            Style="font-weight: normal;"></asp:Label>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

并在后面的代码中有这个:

if(myCondition)
    lblAttributeDropShipMsg.Visible = p.DropShipable;
else
    <snip>

dvDropShipMsgWrap.Visible = p.DropShipable;
Run Code Online (Sandbox Code Playgroud)

跟踪代码,我发现lblAttributeDropShipMsg.Visible属性总是为false,即使将其设置为true也是如此.将其更改为:

dvDropShipMsgWrap.Visible = p.DropShipable;
lblAttributeDropShipMsg.Visible = p.DropShipable;
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.

在设置父级之前,我无法设置嵌套控件的可见性,这似乎很奇怪.任何人都可以提供一些启示吗?

c# visibility .net-3.5

2
推荐指数
1
解决办法
1126
查看次数

RadGrid - 导出为CSV不包括模板列

所以我在我的radgrid中定义了以下列:

                <telerik:GridTemplateColumn DataField="Payment.Customer.FirstName" DataType="System.String"
                    HeaderText="First Name" SortExpression="Payment.Customer.FirstName" UniqueName="FirstName">
                    <ItemTemplate>
                        <asp:HyperLink ID="hypFirstName" runat="server" Target="_blank" Text='<%# ((PaymentIssue)Container.DataItem).Payment.Customer.FirstName %>'
                            NavigateUrl='<%# string.Format("~/CustomerAdmin/Customer_View.aspx?customerId={0}", ((PaymentIssue)Container.DataItem).Payment.CustomerId) %>'></asp:HyperLink>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

现在,如果我使用RadGrid MasterTableView.ExportToExcel()函数; 一切都很好.然而; 如果我尝试使用MasterTableView.ExportToCSV(),则该列为空.

关于可能导致这种情况的任何想法?

c# export telerik radgrid

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

我需要我的代码隐藏文件吗?

在我的WPF应用程序中,我在代码隐藏中的所有内容如下:

public partial class MainWindow
{    
    public MainWindow()
    {
         InitializeComponent();
    }    
}
Run Code Online (Sandbox Code Playgroud)

我可以从项目中完全删除代码隐藏文件,还是必须留在那里?我的背景是在Web应用程序开发中,我将它与一个带有空的Page_Load()方法的代码隐藏文件联系起来,我通常会删除它.

wpf code-behind

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