小编kyu*_*yan的帖子

从不同步的代码块调用对象同步方法.Mutex.Release()的例外情况

我找到了关于这个例外的不同文章,但没有一个是我的情况.这是源代码:

class Program
{

    private static Mutex mutex;
    private static bool mutexIsLocked = false;
    static void Main(string[] args)
    {

        ICrmService crmService = 
            new ArmenianSoftware.Crm.Common.CrmServiceWrapper(GetCrmService("Armsoft", "crmserver"));
        //Lock mutex for concurrent access to workflow
        mutex = new Mutex(true, "ArmenianSoftware.Crm.Common.FilterCtiCallLogActivity");
        mutexIsLocked = true;

        //Create object for updating filtered cti call log
        ArmenianSoftware.Crm.Common.FilterCtiCallLog filterCtiCallLog =
            new ArmenianSoftware.Crm.Common.FilterCtiCallLog(crmService);
        //Bind events
        filterCtiCallLog.CtiCallsRetrieved += new EventHandler<ArmenianSoftware.Crm.Common.CtiCallsRetrievedEventArgs>(filterCtiCallLog_CtiCallsRetrieved);

        //Execute filter
        try
        {
            filterCtiCallLog.CreateFilteredCtiCallLogSync();
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            if (mutexIsLocked)
            {
                mutexIsLocked = false; …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading mutex

24
推荐指数
4
解决办法
5万
查看次数

以编程方式设置文本时不会触发UITextField委托方法

我已经创建了一个用于输入文本的自定义输入视图UITextField.基本上它只是定制设计的数字键盘.我有textfields,我在其上设置了inputView属性以使用我自定义创建的UIView子类.在该视图中,我有按钮集合 - 从0-9到退格.

现在我想在点击这些按钮时以编程方式更改UITextField的文本.在UITextField采用UITextInput协议,在它的回合采用UIKeyInput的协议.在该协议中,我拥有我需要的所有方法,即将文本插入光标位置并删除文本.

问题是这些方法不会触发UITextField委托方法.那就是如果我在textField:shouldChangeCharactersInRange:replacementString:字段中进行自定义验证,那将无效.我试图直接设置text属性UITextField,但这也不起作用.

插入文本的正确方法是什么UITextField,我的意思是以一种所有委托方法都会被调用的方式插入文本?

objective-c uitextfield ios uitextfielddelegate

14
推荐指数
2
解决办法
5274
查看次数

iOS项目中的Xamarin studio文件夹结构问题

我在使用xamarin文件夹时遇到问题.目前我正在编写xamarin iOS项目.在Xcode中我使用目录来分组图像,可能有几个级别的嵌套文件夹,但是当我为设备或iOS模拟器构建项目时,这些资源只是被复制到主包,没有任何文件夹结构.我无法在xamarin工作室中达到相同的行为.每当我在项目中创建文件夹并将图片或其他资源放入其中时,此文件夹结构将在实际设备上重新创建,因此,在加载图像时,我会在不同的路径上进行斗争.如何让xamarin studio只是将文件夹中的文件复制到主包中,而不是重新创建文件夹结构?

感谢帮助.

xamarin.ios ios xamarin xamarin-studio

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

使用MonoTouch,HttpClient和Charles Proxy时出现HTTP流量监控问题

我是HttpClient类的新手,我遇到使用Charles Proxy监视请求的问题.基本上我需要的是监视从模拟器或实际iOS设备发出的请求.在这里,您可以找到有关如何配置Charles for iOS开发的精彩教程.我正在制作简单的HttpClient请求,只是一个简单的授权

async Task<string>  authorizeUser()
        {
            HttpClient _client = new HttpClient ();
            _client.BaseAddress = new Uri("https://...../api/");
            _client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue ("bearer", token);
            var content = new FormUrlEncodedContent(new[] 
                {
                    new KeyValuePair<string, string>("grant_type", "password"),
                    new KeyValuePair<string, string>("username", "theUserName"),
                    new KeyValuePair<string, string>("password", "thePassword")
                });
            var result = await _client.PostAsync("auth", content);
            string resultContent = result.Content.ReadAsStringAsync().Result;
            return resultContent;
        }
Run Code Online (Sandbox Code Playgroud)

代码有效,用户正在被授权,并且正在返回承载令牌.但是问题是,我在模拟器上的请求没有出现在Charles http流量监控列表中.

我想也许,这是因为我正在使用模拟器,但事实并非如此.我尝试打开野生动物园并浏览了一些网页,流量立刻出现了.所以问题不在于模拟器.

我也尝试在设备上安装,同样的故事,当使用HttpClient时,流量监控屏幕保持静音,但是一旦我打开浏览器,交通屏幕开始摇摆并篡夺所有请求.

我想可能是因为我使用HTTPS,尽管在任何情况下都应该捕获请求头,即使正文是编码的.但事实并非如此,我尝试在我的设备Safari上打开一些HTTPS站点,然后流量再次出现在我的Charles屏幕上.

我做的下一件事我下载了monotouch HttpClient示例.好消息是有几种发送请求的方法,实际上有四种方法 - 1. http WebRequest,2.https WebRequest,3.http NSUrlConnection,4.HttpClient.

我尝试了所有这些,你可能会猜到前三个完全出现在查尔斯,但最后一个HttpClient再次我不知道为什么没有出现在交通日志屏幕上.

所以我100%确定问题是HttpClient类,我不知道为什么尽管它正常工作,即发送/接收请求,但是这个类的请求无法被Charles捕获.

并排除这个问题的最后一个可能原因,那可能是问题在于Charles,我也尝试在Windows上使用Fiddler,它在我的Mac上作为虚拟机运行(在这里你可以找到如何做到这一点),重复了同样的故事 …

https xamarin.ios ios dotnet-httpclient charles-proxy

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

从Dropbox中的文件路径获取公共URL

假设我有dropbox帐户,并且我有共享文件夹,例如共享文件夹的名称是"SampleFolder".在该文件夹中,我有文件夹和文件层次结构,它也在共享文件夹中共享.我如何拥有SampleFolder网址并知道我想要下载的文件路径,可以通过Dropbox Core API轻松获取网址,或者只知道网址的构建方式并手工构建网址.例如,我想在路径SampleFolder/Folder1/Folder2/image.png中下载文件,如何才知道该文件的url只知道SampleFolder的url?我请注意,我不想登录Dropbox,这里有一个get方法,用于通过它的路径检索文件,但它需要授权.基本上我想要一个存储文件的公共场所,并在我的代码中通过他们的URL下载它们.

谢谢你的回答.

dropbox dropbox-api

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

将自动布局与核心动画相结合

我是核心动画的新手,我正在努力解决一件事 - 如何将autolayout与核心动画结合起来.实际上我在Core Animation的文档中只找到了一个句子,这里引用的是Autolayout

记住将视图约束更新为动画的一部分 如果使用基于约束的布局规则来管理视图的位置,则必须删除可能会影响动画的任何约束,作为配置动画的一部分.约束会影响您对视图的位置或大小所做的任何更改.它们还会影响视图与其子视图之间的关系.如果要为这些项中的任何项设置动画,则可以删除约束,进行更改,然后应用所需的任何新约束.

但是,正如我所做的那样,所有人并不像看起来那样直截了当.这是我的情景.

我设计了一个广泛使用自动布局的滑动菜单.这是该视图的外观. 在此输入图像描述

我正在使用自动布局约束来强制在滑动菜单中按比例定位这些项目.其实有一个很大的制约那里,我没有要发布的所有那些在我的问题,甚至可能是他们并不需要这个问题的直接回答,但是如果需要的话我可以更新这些职位限制.

您在gif中看到的动画仅通过autolayout到达.我只是说出口,以滑动菜单的高度约束,并以这种方式改变了它:(代码使用Xamarin的MonoTouch写的,但我相信它应该是清楚什么都是在这里完成的纯iOS开发)

private void AnimateSlideMenuAppearance()
    {
        float height;
        if (isSlideMenuShown) {
            height = 0;
        } else {
            height = slideMenuHeight;
        }
        UIView.Animate (0.4,
            delegate {
                this.slideMenuHeightConstraint.Constant = height;
                this.View.LayoutIfNeeded ();
            }, 
            delegate {
                isSlideMenuShown = !isSlideMenuShown;
            });
    }
Run Code Online (Sandbox Code Playgroud)

现在我希望获得更复杂的外观过渡.点击这里查看我想要达到的效果.

只是为了尝试我尝试用一​​系列CABasicAnimations 来实现该动画的消失部分,但是它不成功,我得到了奇怪的行为.

任何人都可以建议我应该在这做什么吗?是否可以使用autolayout来计算视图的位置,但以某种方式覆盖自动布局大小更改之间的动画?我的意思是在我的具体例子中,而不是按比例减小菜单中所有按钮的大小,我需要将FadeOut动画添加到它们,将边界设置为零,并从按钮到按钮从根本上增加动画的开始时间以获得效果我想要的.或者我可能需要完全摆脱autolayout并手动计算大小和动画?

这种情况下的最佳做法是什么 - 当您有复杂的自动布局时,您需要在自动布局更改之间进行自定义核心动画转换?我希望我能很好地描述这个问题.谢谢您的回答.

core-animation xamarin.ios ios autolayout

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

设计自定义android DPC应用程序与Android管理API有何关系?

我是android企业开发领域的新手,对于android企业生态系统中的各个部分之间如何相互联系,我有些误解。让我解释。

我正在尝试实现的解决方案是能够远程将设备锁定为信息亭模式,并且即使用户处于脱机状态,也可以基于某些业务逻辑将其锁定。我开始研究EMM,尤其是Android Management API以解决该问题。我可以使用API​​将设备远程锁定为信息亭模式。我正在采取的步骤

  1. 恢复出厂设置的Android设备
  2. 到达用户需要输入凭据的屏幕
  3. 我输入afw#setup而不是真实的凭证
  4. 设备进入工作资料模式,并且正在安装android设备策略
  5. 我在管理API中创建了一个注册令牌(快速入门指南中介绍了步骤)
  6. 收到提示后,我会生成QR码并使用恢复出厂设置的设备对其进行扫描
  7. 该设备将被连接到企业,而且我成功能控制它,并通过创建特殊亭模式策略和修补设备以符合使用的组合政策将器件置于展台模式补丁策略(创建策略)和补丁设备 API。

下一步是找到一种即使用户处于离线状态也可以将设备锁定为信息亭模式的方法。我假设这将通过创建android企业自定义DPC(设备策略控制器)应用程序来实现。我假设通过阅读以下文档,配置“单一用途”设备的三种方式之一是创建自定义DPC应用程序。这是来自不同网址的另一个引号

作为EMM,您将开发一个DPC应用程序,供客户与EMM控制台和服务器一起使用。您的客户将DPC部署到他们管理的用户设备上。DPC充当EMM控制台(和服务器)与设备之间的桥梁。管理员使用EMM控制台执行一系列任务,包括配置设备设置和应用程序。

这就是我所有困惑的地方。自然而然产生的第一个问题- 在谈论EMM控制台和服务器时,前面引用的作者是否提到了EMM管理API?

此外,还有更多问题我找不到答案

在创建自定义DPC 的指南中,没有提到EMM API在自定义DPC中将扮演什么角色,因此,我找不到任何地方描述自定义DPC是EMM控制台(大概是EMM API)之间的桥梁。和设备?

然后,假设我已经开发了一个自定义DPC应用程序,并将其上传到了Google Play Alpha频道。文档指出,在设置过程中,我应该输入afw#DPC_NAME而不是输入afw#setup,而且我不知道如何生成该名称?它是DPC应用程序的捆绑包ID吗?还是可能是在Google设置中的某处设置了?例如,谷歌已经开发了TestDPC应用程序来测试企业解决方案,我能够按照上述步骤操作,输入afw#testdpc并成功扫描了git自述文件中的QR码,我看到已安装了TestDPC并设备已启动进入工作资料模式。因此,我假设我需要以某种方式注册我自己的“ testdpc”并输入afw#my_dpc。

基本上,我有独立工作的不同作品,我想在我的脑海中形成一个广阔的画面,以了解如何将这些作品缝合在一起。

谢谢你的回答

更新1:

今天,我找到了一种无需通过NFC或其他设置流程即可将自定义DPC转变为设备所有者的方法。这对于开发目的特别有用。请按照此链接获取说明。这既节省了时间,而且就我而言,我们仍在等待Google的批准,但最终我们可以开始测试某些内容,而无需自定义设置流程。

android kiosk-mode cosu android-enterprise android-management-api

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

System.IO.FileNotFoundException:无法加载文件或程序集'Microsoft.Xrm.Client

我已经坚持这个例外两天了.我正在使用MS CRM 2011,当我尝试注册CRM自定义worklow活动程序集1.通过pluginregistrator工具,2或当我在Visual Studio中部署插件程序包项目并运行工作流程后,我得到了这个例外,并且它在等待状态下停止,在详细信息页面中给出了这个说明.以下是详细的例外情况:

工作流因错误而暂停:未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集"Microsoft.Xrm.Client,Version = 5.0.9688.1154,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"或其依赖项之一.该系统找不到指定的文件.at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor)上的System.Activities.CodeActivity.InternalExecute(ActivityInstance实例,ActivityExecutor执行器,BookmarkManager bookmarkManager)中的ArmenianSoftware.Crm.Spayka.ArmsoftIntegration.Workflows.CreateWorksByPlan.Execute(CodeActivityContext executionContext).执行者,BookmarkManager bookmarkManager,Location resultLocation)

我在文件系统上注册程序集,我已经在文件夹%system root%\ C $\Program Files\Microsoft Dynamics CRM\Server\bin\assembly中加载了所有需要的程序集.这个工作流程工作了一段时间,但在我不知道什么之后,下次部署程序集时,我在执行工作流程时遇到了这个异常.这已经是我第三次遇到这个问题了,破坏了几个小时试图做不同的事情(IIS重置,异步服务重启,再次重新加载所有程序集并重新部署),几个小时之后,以一种神秘的方式,工作流程开始工作了.在此工作一段时间后,并在一些重新部署后再次崩溃.我无法确定在解决问题的确切步骤之后,因此我总是花费几个小时来查找异常来源,但没有任何目的.我已经查看了网络中的一些线程,但没有一个是我的情况(这里是thread1,thread2,thread3)有没有人遇到过这个问题?这个异常的原因是什么?提前致谢!

workflow plugins crm dynamics-crm-2011

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