Tag: .net

使用Simple Injector abd WebFormsMVP将运行时值传递给构造函数

我正在尝试将SimpleInjector与WebFormsMvp结合起来。 为方便DI WebFormsMvp提供了IPresenterFactory接口。 它包含Create方法,该方法提供要解析的演示者类型和视图实例 。 我需要将 视图实例注入到 演示者的构造函数中 。 演示者还具有需要由容器创建的 其他依赖项 。 这是我到目前为止所得到的,但它并不理想。 这个问题的正确解决方案是什么? Presenter构造函数: public FooPresenter(IFooView view, IClientFactory clientFactory) : base(view) 厂: public class SimpleInjectorPresenterFactory : IPresenterFactory { private readonly Container _container; private IView _currentView; public SimpleInjectorPresenterFactory() { _container = new Container(); Func isIView = type => typeof(IView).IsAssignableFrom(type); _container.ResolveUnregisteredType += (s, e) => { […]

从其他窗口获取ListView项目

我正在做一些关于c#的项目。 我需要从ListView窗口获取i项目,通过做这样的事情我得到它的句柄 IntPtr par_hWnd = API.FindWindow(null, “Form1”); IntPtr child1 = API.FindWindowEx(par_hWnd, (IntPtr)0, null, null); API是我的静态类,有很多来自“user32.dll”的dllimports我能够获得这个ListView中的项目数: IntPtr count = API.SendMessage(child1, API.LVM_GETITEMCOUNT, 0, 0); 现在我需要获取item的文本,但结果必须放在LVITEM Structure中,我不知道如何正确调用SendMessage ,以及如何在c#中实现LVITEM 。 找不到c#的例子。 有帮助吗?

entity framework中的循环依赖

是否可以保存具有循环依赖性的模型? 我对数据库进行了非规范化: 用户 ——– 用户身份 用户名 LastOrder – 最后订单的fk 订购 ——- 的OrderId ORDERNAME 用户身份 订购日期 是否可以使用entityFramework来保存这样的东西? 我应该改变什么使它工作因为现在我有错误: 无法确定相关操作的有效排序。 由于外键约束,模型要求或存储生成的值,可能存在依赖关系。

阻止Visual Studio为新类添加默认引用和使用

每当我向Visual Studio(C#)项目添加一个新类时,我都会自动获得以下用法: 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用System.Text; 此外,如果它们不存在,则添加以下DLL引用: System.Core程序 System.Data 的System.Xml 我想阻止VS这样做(当然除了“使用系统”)。 有没有人知道防止这种情况发生的方法?

Windows服务下的进程截图

我们必须从Windows服务运行一个进程并从中获取屏幕截图。 我们尝试了BitBlt和PrintWindow Win32调用,但都给出了空白(黑色)位图。 如果我们从普通用户进程运行我们的代码,它就可以正常运行。 这有可能吗? 或者可以尝试另一种方法吗? 我们尝试的事情: 作为本地系统运行的Windows服务,以本地系统运行进程 – >屏幕截图失败 以管理员身份运行的Windows服务以管理员身份运行 – >屏幕截图失败。 以用户XYZ运行的Windows应用程序以XYZ运行流程 – >截图适用于BitBlt或PrintWindow。 尝试从本地系统检查“允许服务与桌面交互” 我们还注意到PrintWindow对我们的情况更好,如果窗口在另一个窗口后面,它可以工作。 对于其他要求,父进程和子进程必须位于同一用户下。 我们无法真正使用从一个进程到另一个进程的模拟。

exception比返回值贵多少钱?

是否可以使用返回值和exception更改此代码: public Foo Bar(Bar b) { if(b.Success) { return b; } else { throw n.Exception; } } 对此,它会为成功和失败抛出单独的例外 public Foo Bar(Bar b) { throw b.Success ? new BarException(b) : new FooException(); } try { Bar(b) } catch(BarException bex) { return ex.Bar; } catch(FooException fex) { Console.WriteLine(fex.Message); }

Oauth谷歌趋势下载CSV文件

我正在尝试构建一个使用谷歌趋势和/或谷歌洞察力数据的网络应用程序,但我遇到了一些障碍。 如果您使用有效的Google帐户登录,Google趋势只允许您下载csv文件。 因此,我不能让我的Web应用程序下载并解析它们。 这让我开始研究OAuth http://code.google.com/apis/accounts/docs/OAuth.html ,但我有点不知所措。 尝试使用谷歌趋势urlhttp://googlecodesamples.com/oauth_playground/为谷歌趋势url生成无效的范围错误。 我可以不使用Oauth访问这些服务吗? 我做了很多搜索,但没有找到任何真正可靠的例子(至少我能理解的)如何正确使用它。 有一个更好的方法吗? 有人帮我解决这个问题吗?

这是DTO的正确使用吗?

我正在编写一个控制台应用程序,它可以从存储过程记录集中进行大量数据检索。 对于我正在使用的每个记录集类型,我有一个使用EF和自定义复杂类型的Repository来检索数据: public interface IBalanceSheetRepository { IEnumerable GetBalanceSheetRecords(); } public class BalanceSheetRepository : IBalanceSheetRepository { DBContext _context; … public IEnumerable GetBalanceSheetRecords() { ObjectResult results = _context.GetBalanceSheet(); return results.Select(CreateBalanceSheetDTOFromDAO); } private static BalanceSheetRecordDTO CreateBalanceSheetDTOFromDAO(BalanceSheetRecord dao) { return new BalanceSheetRecordDTO { … }; } } 这里, BalanceSheetRecord是我在设计器中创建的复杂数据类型。 我创建了一个DTO以避免耦合,因为BLL不应该知道BalanceSheetRecord类型。 这是我的问题:由于DTO类型用于存储库接口的方法签名,并且由于我的BLL最终将使用存储库并返回DTO的集合,因此它似乎是一个跨领域的问题。 因此,我让DTO与repo接口一起生活在一个单独的“Infrastructure”组件中。 这是我努力实现的良好做法,还是我在某个地方转错了? 另外:在我的存储库中新建数据上下文是不好的做法? 当两个组件都属于DAL时,是否有一定数量的耦合? 我想使用DI,但是对于替换TestBalanceSheetRepository的repo的DBContext实现似乎更有用。

WCF REST未异步处理

我们目前正在IIS中为我们的站点实现一个新的WCF REST服务,在许多页面上,我们可能会异步使用JQuery进行一些AJAX调用。 问题是似乎WCF(在服务器端)同步执行。 在页面加载时,我们对3种不同的方法进行3次单独调用。 使用日志记录,我可以看到它们都在大约5ms内相互访问global.asax文件。 从那里,日志记录显示按退出global.asax的顺序执行的所有操作(不一定是我们通过javascript从页面调用的顺序)。 我希望每次调用都能收到自己的线程并单独返回。 即使使用调试器附加,我也可以看到它不会执行下一个方法,直到我逐步执行当前方法。 以下是我为实现使用异步模型而实现的三种方法的操作合同。 [OperationContract(AsyncPattern = true)] [WebInvoke( Method = “POST” , UriTemplate = “/ListUserPreferences” , BodyStyle = WebMessageBodyStyle.Wrapped , ResponseFormat = WebMessageFormat.Json , RequestFormat = WebMessageFormat.Json )] IAsyncResult BeginListUserPreferences(AsyncCallback callback, object state); Result<List<Data.EnumerationItem>> EndListUserPreferences(IAsyncResult asyncResult); [OperationContract(Name = “GetUserSecure”, AsyncPattern = true)] [WebInvoke( Method = “POST” , UriTemplate = “/GetUser” […]

实际铸件在CLR级别如何工作?

在进行向上或向下投射时,幕后真的会发生什么? 我有一个想法,当做某事时: string myString = “abc”; object myObject = myString; string myStringBack = (string)myObject; 最后一行中的强制转换只会告诉编译器我们是安全的,我们没有做错任何事。 所以,我认为实际上代码本身不会嵌入任何强制转换代码。 看来我错了: .maxstack 1 .locals init ( [0] string myString, [1] object myObject, [2] string myStringBack) L_0000: nop L_0001: ldstr “abc” L_0006: stloc.0 L_0007: ldloc.0 L_0008: stloc.1 L_0009: ldloc.1 L_000a: castclass string L_000f: stloc.2 L_0010: ret 为什么CLR需要类似castclass string东西? 向下转换有两种可能的实现方式: 你需要一个castclass […]