草庐IT

Unity—委托

全部标签

c# - 无法解析 Unity 容器中的字典

我刚刚偶然发现了这个:在Unity容器中,我想注册IDictionary;假设它是IDictionary_unityContainer=newUnityContainer().RegisterType,Dictionary>();但如果我尝试vard=_unityContainer.Resolve>();无法解析...我明白了...Microsoft.Practices.Unity.ResolutionFailedException:Microsoft.Practices.Unity.ResolutionFailedException:解析依赖失败,type="System.Colle

c# - 使用 ref 参数委托(delegate)

有什么方法可以在下面的代码中保持相同的功能,而不必创建委托(delegate)?我正在与包含多种DeleteSomethingX(refIntPtrptr)方法的第3方API交互,并且我正在尝试集中IntPtr.Zero检查的代码。privatevoiddelegateCleanupDelegate(refIntPtrptr);...privatevoidCleanup(refIntPtrptr,CleanupDelegatecleanup){if(ptr!=IntPtr.Zero){cleanup(refptr);}} 最佳答案

c# - Entity Framework ——存储过程返回值

我正在尝试获取存储过程的返回值。以下是此类存储过程的示例:selectName,IsEnabledfromdbo.somethingwhereID=@IDif@@rowcount=0return1return这是一个简单的选择。如果找到0行,我的结果集将为空,但我仍然会有返回值。这是一个不好的例子,因为这是一个选择,所以如果返回0行,我肯定能找到。但是,在插入、删除或其他调用中,我们需要此返回值来了解是否存在问题。我一直无法找到获得此返回值的方法。可以得到输出值,可以得到结果集,但是没有返回值。如果我手动调用SQL,或者即使我使用EntityFramework运行SqlCommand,

c# - 通过线程池多路复用 C# 5.0 的异步——线程安全吗?

这可能看起来有点疯狂,但如果我可以合理地确定它不会导致奇怪的行为,我正在考虑将其作为更大库的一部分。方法:使用分派(dispatch)到线程池的SynchronizationContext运行异步用户代码。用户代码看起来像这样:asyncvoidDoSomething(){intsomeState=2;awaitDoSomethingAsync();someState=4;awaitDoSomethingElseAsync();//someStateguaranteedtobe4?}我不确定对someState的访问是否是线程安全的。虽然代码将在一个“线程”中运行,这样操作实际上是完全

c# - 事件处理程序和匿名委托(delegate)/Lambda 表达式

我希望通过使用匿名委托(delegate)和lambda表达式来为C#中的事件处理程序创建方法来解决一些问题,至少对我自己而言。假设我们有一个添加匿名委托(delegate)或lambda表达式的事件(对于可以使用较新版本.NET的幸运人群)。SomeClass.SomeEvent+=delegate(objecto,EventArge){/*dosomething*/};我读到,过去的人们已经忘记了仍然有处理程序阻止类被垃圾收集的事件。如果不在类中将SomeEvent设置为null,将如何删除添加的处理程序。以下不是一个全新的处理程序吗?SomeClass.SomeEvent-=de

c# - 带有其他参数的Unity构造函数注入(inject)

我有一个类,其构造函数如下所示:publicBatchService(IRepositoryrepository,ILoggerlogger,stringuser)在我的DIBootstrap类中,我有以下RegisterType命令:.RegisterType(newInjectionConstructor(newResolvedParameter("SomeRepository"),newResolvedParameter("DatabaseLogger")))在我的客户端代码中,我想实例化BatchService如下:BatchServicebatchService=DICont

c# - 将 Func 转换为委托(delegate)

这个问题在这里已经有了答案:CastdelegatetoFuncinC#(8个答案)关闭7年前。我定义了以下委托(delegate):publicdelegateobjectMyDelegate(dynamictarget);我有一个Func对象:FuncmyFunc如何转换myFunc至MyDelegate?我已经尝试过这些说明,但没有一个奏效:MyDelegatemyDeleg=myFunc;MyDelegatemyDeleg=(MyDelegate)myFunc;MyDelegatemyDeleg=myFuncasMyDelegate;

c# - Prism,将 Views 和 ViewModels 与 Unity 连接起来,试图理解它

CreatingtheViewandViewModelUsingUnityUsingUnityasyourdependencyinjectioncontainerissimilartousingMEF,andbothproperty-basedandconstructor-basedinjectionaresupported.Theprincipaldifferenceisthatthetypesaretypicallynotimplicitlydiscoveredatruntime;instead,theyhavetoberegisteredwiththecontainer.Typi

c# - Unity 4.3 - 2D,如何以编程方式将 Sprite 分配给对象

我正在尝试创建一个负责创建和显示不同Sprite的对象,因此我想以编程方式直接访问Assets/Sprite,而不是将Sprite拖放到该对象下的层次结构中。有一种方法可以通过编程方式创建一个新的Sprite并分配我在Assets文件夹中的内容吗?我还想要一种数据结构,在游戏开始时加载一些图像,一个数组或字典或类似的东西,这样我就可以根据某些情况更改我需要显示的图像。但是让我感到困惑的是,因为我是Unity的新手,所以如何使用Assets文件夹以编程方式引用Sprite来创建Sprite。随进度编辑:我创建了一个像这样的Sprite数组:publicSprite[]mySprites;

在 Unity 中创建简单、可靠且干净的 UI

无论您在Unity中构建的应用程序类型如何,您都很有可能会使用一些用户界面(或简称为UI)。然而,尽管这项任务很简单,但为您的UI组件保持一个干净可靠的系统并非易事。事实上,一些错误的步骤会迅速破坏未来的变化,并导致数小时的过度工作和修订。为了避免您将所有精力花在构建不当的UI上,本文将介绍主要步骤,了解Unity提供的UI元素,然后是一个简单的工作流程来开发您的界面结构,最后是如何使用免费资源和其他Unity工具来增强其视觉元素。设置环境用户界面画布画布渲染模式画布缩放器UI面板、图像、按钮和文本用户界面图像用户界面文本用户界面按钮用户界面面板其他UI元素矩形变换和锚点锚预设基本菜单结构用于