小编nab*_*rid的帖子

如何使用MVVM Light Toolkit打开一个新窗口

我在我的WPF应用程序中使用MVVM Light工具包.我想知道从现有窗口打开新窗口的最佳方法是什么.我有这个MainViewModel,负责MainWindow我的申请.现在,MainView按下按钮,我想打开它上面的第二个窗口.我有RelayCommmand绑定到ButtonCommand.在RelayCommand方法中,我可以创建一个新的窗口对象,只需调用Show(),如下所示:

var view2 = new view2()
view2.Show()
Run Code Online (Sandbox Code Playgroud)

但我不认为ViewModel应该负责创建新view2对象.我已经阅读了这篇文章WPF MVVM从VIEW MODEL获取Parent,其中Bugnion建议将消息​​传递给view1from viewmodel1,然后view1应该创建新的view2.但是我不确定他将这条消息传递给他的意思是view1什么?如何view1处理消息?在它的代码背后或什么?

此致,Nabeel

wpf mvvm mvvm-light

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

使用Fluent NHibernate/Nhibernate和Automapping进行预先加载

我有一个要求加载一个名为Node的复杂对象...它不是那么复杂...它看起来如下: -

一个节点有一个参考的EntityType具有一对多物业这反过来有一对多PorpertyListValue

public class Node
{
    public virtual int Id
    {
        get;
        set;
    }

    public virtual string Name
    {
        get;
        set;
    }

    public virtual EntityType Etype
    {
        get;
        set;
    }

}


public class EntityType
{
    public virtual int Id
    {
        get;
        set;
    }

    public virtual string Name
    {
        get;
        set;
    }

    public virtual IList<Property> Properties
    {
        get;
        protected set;
    }

    public EntityType()
    {
        Properties = new …
Run Code Online (Sandbox Code Playgroud)

nhibernate fluent-nhibernate automapping eager-loading

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

没有ORM的存储库模式

我在不使用ORM的.NET C#应用程序中使用存储库模式.但是,我遇到的问题是如何填充实体的一对多列表属性.例如,如果客户有一个订单列表,即如果Customer类有一个名为Orders的List属性,而我的存储库有一个名为GetCustomerById的方法,那么?

  • 我应该在GetCustomerById方法中加载Orders列表吗?
  • 如果订单本身有另一个列表属性等等怎么办?
  • 如果我想做懒加载怎么办?我会在哪里放置代码来加载客户的Orders属性?在Orders属性中获取{} accessor?但是,我必须将存储库注入域实体?我不认为这是正确的解决方案.

这也引发了诸如变更跟踪,删除等功能的问题?所以我认为最终结果是我可以在没有ORM的情况下进行DDD吗?

但是现在我只对我的域实体中的延迟加载List属性感兴趣?任何的想法?

纳比勒

我假设对于没有在域驱动设计中使用ORM的人来说这是一个非常常见的问题?任何的想法?

c# orm domain-driven-design repository-pattern

21
推荐指数
2
解决办法
5367
查看次数

用于ASP.NET MVC 3的NuGet包

我最近开始使用NuGet,我想知道是否有一个我可以安装的asp.net mvc 3软件包,所以我不必通过lib文件夹引用aspnet mvc3程序集,就像传统方式一样,所有引用都设置为CopyLocal = true.目前我的lib文件夹中有以下程序集:

Microsoft.Web.Infrastructure.dll
System.Web.Helpers.dll
System.Web.Mvc.dll
System.Web.Razor.dll
System.Web.WebPages.Administration.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll

任何的想法?

asp.net-mvc nuget

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

Wcf System.InsufficientMemoryException.无法分配536870912字节的托管内存缓冲区

我有一个WCF服务方法,返回大小为2 mb的大byte []数组.但是,当我从WcfTestClient运行该方法时,我得到以下异常.

System.InsufficientMemoryException
Failed to allocate a managed memory buffer of 536870912 bytes. The amount of available memory may be low.
Run Code Online (Sandbox Code Playgroud)

我在谷歌搜索,人们似乎有这个问题,但我很难找到任何解决方案和实际原因,为什么它试图创建这样一个巨大的缓冲区?

以下是我的配置设置.我设置了maxItemsInObjectGraph ="2147483647",否则它会抛出异常.其余的很简单,我猜.

服务器

  <system.serviceModel>
    <services>
      <service behaviorConfiguration="Wcf.ServiceBehavior"
        name="Wcf.WcfService">
        <endpoint address="" binding="wsHttpBinding" contract="Wcf.IWcfService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Wcf.ServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <dataContractSerializer maxItemsInObjectGraph="2147483647" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <diagnostics>    
      <messageLogging maxMessagesToLog="30000"    
              logEntireMessage="true"    
              logMessagesAtServiceLevel="true"    
              logMalformedMessages="true"    
              logMessagesAtTransportLevel="true">    
      </messageLogging>    
    </diagnostics>
  </system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

WcfTestClient Config这是使用WcfTestClient加载的默认配置文件

<?xml version="1.0" encoding="utf-8"?> …
Run Code Online (Sandbox Code Playgroud)

wcf

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

clickonce bootstrapper和msbuild的问题

我有一个在Windows Server 2003上运行的CruiseControl .NET构建服务器,我正在尝试使用msbuild构建和发布我的ClickOnce应用程序.

除非我启用ClickOnce应用程序的引导程序,否则一切正常.发生这种情况时,我在DeploymentGenerateBootstrapper目标中收到以下错误:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (3939,9):

error MSB3147: 

Could not find required file 'setup.bin' in 'E:\Projects\src\TestProject\Engine'.
Run Code Online (Sandbox Code Playgroud)

.NET Framework 3.5 SP1和4以及最新的Windows SDK都安装在服务器上,但C:\ Program Files\Microsoft SDKs\Windows\versionNo \中的引导程序文件夹不存在.我试着从我的工作站机器上复制文件而没有运气.

我不想在服务器上安装Visual Studio,只安装必要的SDK.

我也尝试从我的机​​器上复制bootsrapper文件夹

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper
Run Code Online (Sandbox Code Playgroud)

建立服务器,但没有运气.

有任何想法吗?

msbuild clickonce winapi

13
推荐指数
2
解决办法
8066
查看次数

每个子类继承策略使用NHibernate表时使用Casting代理的问题

我有一个抽象的基类并继承了poco实体.我使用表每子类继承与流畅的nhibernate 1.1自动化.

类继承如下所示

节点(抽象类)放置:节点资产:节点

Node类基本上是树结构.

 public abstract class Node 
    {
        public virtual int Id
        {
            get;
            set;
        }

        public virtual Node ParentNode
        {
            get;
            set;
        }

        public virtual ICollection<Node> ChildNodes
        {
            get;
            set;
        }
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我从数据库获取Asset的对象并执行objAsset.ParentNode时,我可以将ParentNode强制转换为Asset或Place,但是如果我执行类似objAsset.ParentNode.ParentNode.ParentNode的操作,那么ParentNode将显示为类型" {Castle.Proxies.NodeProxy}"我无法将其投射到Place或Asset.

我知道在我的情况下,最终结果应该是Place类型,因为记录存在于Place表的数据库中但由于某种原因NHibernate不能将它延迟加载到实际的派生类型,它只能转换为基类Node .

任何的想法?

等待Nabeel

nhibernate lazy-loading nhibernate-mapping fluent-nhibernate

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

使用Automapper仅映射少数属性而不是全部属性

我最近开始使用automapper,到目前为止我的工作正常.我一直在将域对象映射到相应的dtos,默认情况下,所有源属性都会映射到其匹配的目标属性.我一直在使用如下代码:

Mapper.CreateMap<Node, NodeDto>();
var nodeDto = Mapper.Map<Node, NodeDto>( node );
Run Code Online (Sandbox Code Playgroud)

现在我遇到了一种情况,我只想映射源对象的一些属性.源对象中有一些集合属性,我不希望将它们映射到匹配的目标属性.有没有办法实现这一目标?

automapper

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

在同一父视图上多次使用一个部分视图

我正在使用MVC3剃须刀.我有一个场景,我必须在同一父视图上多次使用局部视图.我遇到的问题是,当父视图被渲染时,它会在这些部分视图中生成相同的名称和输入控件的ID.由于我的部分视图被绑定到不同的模型,当视图回发到"保存"时它崩溃了.任何想法我如何使控件ID /名称唯一,可能有些人如何前缀?

等待

纳比勒

model-binding asp.net-mvc-3

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

使用Automapper忽略子类映射中的基类属性的问题

我有一个场景,我想忽略基类中定义的类的一些属性.

我有这样的初始映射

   Mapper.CreateMap<Node, NodeDto>()
                .Include<Place, PlaceDto>()
                .Include<Asset, AssetDto>();
Run Code Online (Sandbox Code Playgroud)

然后我更像这样定制它来忽略基类NodeDto中定义的一个属性

 Mapper.CreateMap<Node, NodeDto>()
                .ForMember(dest => dest.ChildNodes, opt => opt.Ignore());
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试映射Place Place to PlaceDto或Asset to AssetDto时,不会忽略ChildNodes属性.所以我最终做了这样的事情

  Mapper.CreateMap<Node, NodeDto>()
                .ForMember(dest => dest.ChildNodes, opt => opt.Ignore());
            Mapper.CreateMap<Place, PlaceDto>()
                .ForMember(dest => dest.ChildNodes, opt => opt.Ignore());
            Mapper.CreateMap<Asset, AssetDto>()
                .ForMember(dest => dest.ChildNodes, opt => opt.Ignore());
Run Code Online (Sandbox Code Playgroud)

由于我有很多NodeDto的子类,上面的过程很麻烦,我想知道是否有更好的方法?

谢谢Nabeel

automapper

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