我有两个需要的服务XPathDocument.我希望能够定义XPathDocumnet在两个服务的配置中使用的命名实例.我也希望能够告诉StuctureMap使用哪个构造函数XPathDocument.当我尝试获取XPathDocument它的实例时告诉我它无法找到插件类型XmlReader.我想使用需要字符串uri的构造函数来获取xml文件.我似乎无法让这个工作.这是StructureMap配置代码.
public class Service1 : IService1 {
public Service1(XPathDocument document) {}
}
public class Service2 : IService2 {
public Service2(XPathDocument document) {}
}
public class Registry1 : Registry {
ForRequestedType<IService1>().TheDefault.Is.OfConcreteType<Service1>()
.CtorDependency<XPathDocument>()
.Is(x => x.TheInstanceNamed("XPathDocument1"));
ForRequestedType<IService2>().TheDefault.Is.OfConcreteType<Service2>()
.CtorDependency<XPathDocument>()
.Is(x => x.TheInstanceNamed("XPathDocument2"));
ForRequestedType<XPathDocument>().AddInstances(x => {
x.OfConcreteType<XPathDocument>()
.WithCtorArg("uri").EqualToAppSetting("XmlFile1")
.WithName("XPathDocument1");
x.OfConcreteType<XPathDocument>()
.WithCtorArg("uri").EqualToAppSetting("XmlFile2")
.WithName("XPathDocument2");
});
}
Run Code Online (Sandbox Code Playgroud) 我们的团队正在考虑使用Team Foundation Server v.11(2012)来管理我们的项目.我们目前在电子表格中进行项目管理.我们的团队仅为内部客户开发软件,项目之间有很多dll共享.我们还使用SVN进行源代码版本控制.
我们为应用程序的不同部分提供解决方案:公共库,应用程序库(业务规则等),Intranet网站,Internet网站,Windows窗体.这是我们的SVN结构的样子
SVN
-CommonLibrary (VS Solution)
-Source
-CommonLibrary.Core (VS Project)
-CommonLibrary.Security (VS Project)
-CommonLibrary.Web (VS Project)
-OurCompanyLibrary (VS Solution)
-Libraries (Projects within this solution reference these)
-CommonLibrary.Core.dll
-CommonLibrary.Security.dll
-Source
-OurCompanyLibrary.Application1 (VS Project)
-...
-OurCompanyLibrary.ApplicationN (VS Project)
-OurCompanyIntranet (VS Solution) (MVC framework)
-Libraries (Projects within this solution reference these)
-CommonLibrary.Core.dll
-CommonLibrary.Security.dll
-CommonLibrary.Web.dll
-OurCompanyLibrary.Application1.dll
-Source
-OurCompanyIntranet.Application1 (VS Class Library Project)
-...
-OurCompanyIntranet.ApplicationN (VS Class Library Project)
OurCompanyIntranet.UI (VS Web Project)
-OurCompanyInternet (VS Solution) (MVC framework)
-Libraries (Projects within this …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用lambda表达式获取类型的方法名称.我正在使用Windows Identity Foundation,需要定义具有类型名称的访问策略,其中命名空间作为资源,方法名称作为操作.这是一个例子.
这是我将从以下类型获取类型名称和方法名称的类型:
namespace My.OrderEntry {
public class Order {
public void AddItem(string itemNumber, int quantity) {}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我想通过DSL定义访问策略的方法:
ForResource<Order>().Performing(o => o.AddItem).AllowUsersHaving(new Claim());
Run Code Online (Sandbox Code Playgroud)
从该声明中,我想将"My.OrderEntry.Order"作为资源,将"AddItem"作为动作.获取带有命名空间的类型名称是没有问题的,但我认为我不能将lambda用于我正在尝试的方法.
public static IPermissionExp Performing<T>(
this IActionExp<T> exp,
Func<T, delegate???> action) {} //this is where I don't know what to define
Run Code Online (Sandbox Code Playgroud)
这种事情甚至可能吗?有没有其他方法可以在不使用魔术字符串的情况下完成此类操作?
我正在使用DDD和NHibernate来保存我的域对象.在我的数据库中,与实体相关的每个表都有四个用于审计跟踪的额外列(CreatedBy,UpdatedBy,CreatedDate,UpdatedDate).我使用的存储库模式只允许保存聚合根.当NHibernate尝试在聚合根上保存实体时,我得到一个SQL DateTime错误,因为实体没有设置其审计属性.在保存之前,NHibernate中有没有办法在对象上设置属性?
这是一个小例子.我有一个Order对象,它是聚合根.我也有OrderNote对象,它们是订单的子项.当我向Order添加OrderNote然后保存Order时抛出异常,因为CreatedDate/UpdatedDate设置为DateTime.MinValue,这将导致SQL DateTime溢出.由于这些审计列是持久性的一部分而与问题域无关,因此我不希望订单聚合根在添加注释时设置这些属性.审计列/属性只应由持久性框架而不是域知道.我希望能够告诉NHibernate在保存或更新时设置这些属性.有没有办法做到这一点?
假设我有一个这样的枚举:
[Flags]
public enum NotificationMethodType {
Email = 1,
Fax = 2,
Sms = 4
}
Run Code Online (Sandbox Code Playgroud)
让我们说我有一个变量定义为:
NotificationMethodType types = (NotificationMethodType.Email | NotificationMethodType.Fax)
Run Code Online (Sandbox Code Playgroud)
如何计算未在"types"变量中定义的所有NotificationMethodType值?换一种说法:
NotificationMethodType notAssigned = NotificationMethodType <that are not> types
Run Code Online (Sandbox Code Playgroud) 我有一个WPF应用程序通过Windows Installer安装在客户端计算机上.此应用程序还注册了文件扩展名(.xyz),因此当用户双击文件时,它会打开我的WPF应用程序并显示该文件(如Microsoft Word).此程序还有大量未标记为其使用的资源或内容文件的文件(用户手册,零件图纸等).
当用户双击.xyz文件并打开WPF应用程序时,问题就出现了.该应用程序现在具有.xyz文件所在目录的工作目录.现在程序找不到它需要的任何文件(用户手册,零件图等).
处理此类问题的最佳方法是什么?我可以设置工作目录(Environment.CurrentDirectory),但是当用户保存或打开.xyz文件时,我的打开文件对话框会更改工作目录.我可以使用包uri作为零件图,但我使用Process.Start作为用户手册,因为它们是PDF.我试着搜索,但无法想出任何问题.
你用什么来同步数据?
我已经使用 Microsoft Sync Framework 几个月了,我不确定我是否喜欢它。这个概念很棒,但我在远程同步方面遇到了麻烦。没有远程文件同步提供程序,但我确实设法编写了一个,但很麻烦。也没有办法显示我所知道的 ADO.NET 同步服务的进度。
当两个客户端尝试同时同步时出现错误。“元数据存储已在使用中。” 经过所有不眠之夜试图让远程文件同步提供程序正常工作,现在出现此错误,我现在正在寻找替代方案。
有没有比 MSF 更好的替代品?
有谁知道任何开源框架或示例?
我正在尝试根据需要每晚通过电子邮件发送的日期范围创建自定义审核摘要报告.我已经完成了大部分工作,但需要一些帮助来获取引用实体的主要名称/字段/属性.我在Audit视图中注意到引用的实体,数据存储为'systemuser;'.我想要做的是抓住主要字段(主要名称,主要属性,无论它叫什么)以显示在报告上.有没有人知道如何使用CRM SQL数据库中的MetadataSchema视图查找实体的Primary Name属性?我通过查看MetadataSchema.Attribute.IsPKAttribute字段找到了Primary Key字段,但是我没有看到Primary Name字段的任何内容.
此外,如果没有以下审核条目,我将从实体中获取当前值.对于查找字段(如所有者或客户),如何从元数据中分辨哪个字段存储ObjectTypeCode?例如,如果我在销售订单上查找客户,我知道我可以查看CustomerIdType字段以查找ObjectTypeCode,但我需要发现该字段从元数据中称为CustomerIdType.
如果有人从CRM的SQL端对元数据有任何好的参考,我将不胜感激.
我们公司有一堆VB6应用程序.我们正在尝试调试随机SQL超时错误,并在审核登录事件上使用SQL Server Profiler进行跟踪.我们注意到连接是以非汇集方式进入的.我们将SQLOLEDB提供程序与SQL Server 2000和2005一起使用.我搜索了互联网,我遇到的所有内容都表明默认情况下在SQLOLEDB提供程序中汇总了连接,但我们没有看到这一点.下面是我们用于连接数据库的代码.我们确实需要将这些连接合并,因为我们认为这可能是我们的随机超时错误的问题.任何人都可以阐明为什么连接池不起作用以及任何使其工作的方法?谢谢.
Dim cnn As New ADODB.Connection
cnn.ConnectionString = "Provider=SQLOLEDB;Data Source=xxx;Catalog=xxx;User ID=xxx Password=xxx;"
Call cnn.Open
Dim cmd As New ADODB.Command
Set cmd.ActiveConnection = cnn
cmd.CommandText = "SELECT * FROM [Table]"
Dim rs As New ADODB.RecordSet
Call rs.Open(cmd, , adOpenStatic, adLockOptimistic)
While Not rs.eof
'Do stuff
Call rs.MoveNext
Wend
'Close and Dispose connection here
Run Code Online (Sandbox Code Playgroud) 我有一个在客户端上运行的WPF应用程序.我有两个应用程序使用的不同数据库.一个是用于应用程序数据的SQL Server 2008,另一个是用于存储在客户端上的用户设置的Sql Server Compact.我正在使用app.config来配置NHibernate.我在类映射文件中看过很多使用"schema"属性的文章,但这只有在我连接到同一个SQL Server时才有效.如何配置NHibernate以设置两个不同的会话工厂?
我想在app.config文件中配置它,如果可能的话.
当我尝试删除具有多对一复合键的对象时,NHibernate会抛出异常.保存对象正常工作.这是一个例外:
[KeyNotFoundException: The given key was not present in the dictionary.]
System.ThrowHelper.ThrowKeyNotFoundException() +28
System.Collections.Generic.Dictionary`2.get_Item(TKey key) +7455516
NHibernate.Engine.StatefulPersistenceContext.RemoveEntity(EntityKey key) in d:\CSharp\NH\nhibernate\src\NHibernate\Engine\StatefulPersistenceContext.cs:434
NHibernate.Action.EntityDeleteAction.Execute() in d:\CSharp\NH\nhibernate\src\NHibernate\Action\EntityDeleteAction.cs:87
NHibernate.Engine.ActionQueue.Execute(IExecutable executable) in d:\CSharp\NH\nhibernate\src\NHibernate\Engine\ActionQueue.cs:136
NHibernate.Engine.ActionQueue.ExecuteActions(IList list) in d:\CSharp\NH\nhibernate\src\NHibernate\Engine\ActionQueue.cs:126
NHibernate.Engine.ActionQueue.ExecuteActions() in d:\CSharp\NH\nhibernate\src\NHibernate\Engine\ActionQueue.cs:174
NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session) in d:\CSharp\NH\nhibernate\src\NHibernate\Event\Default\AbstractFlushingEventListener.cs:241
NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event) in d:\CSharp\NH\nhibernate\src\NHibernate\Event\Default\DefaultFlushEventListener.cs:19
NHibernate.Impl.SessionImpl.Flush() in d:\CSharp\NH\nhibernate\src\NHibernate\Impl\SessionImpl.cs:1479
Run Code Online (Sandbox Code Playgroud)
这是我的域名:
public class Order : EntityBase {
protected Order() {}
public Order(Guid persistenceId) : base(persistenceId) {
this.Lines = new List<OrderLine>();
}
public virtual int OrderId {get; private set;}
IList<OrderLine> Lines {get; private set;}
}
public …Run Code Online (Sandbox Code Playgroud) 有没有人知道任何示例或代码显示可以像DateTime结构一样用于距离的类或结构?我需要能够以英尺和英寸为单位添加,减去和显示数据,并且使用转换方法会变得混乱.一个类或结构将是完美的,但我在搜索中没有发现任何东西.
c# ×4
nhibernate ×3
.net ×2
ado ×1
enums ×1
lambda ×1
persistence ×1
reflection ×1
structuremap ×1
tfs ×1
vb6 ×1
wpf ×1
xmlreader ×1