小编use*_*563的帖子

TypeScript - 她必须拥有它吗?(其中= =全球范围)

我正在转换Angular应用程序以使用TypeScript,但这是一个普通的TypeScript问题,而不是Angular.角度js文件是沿着这条线:

(function () {
  var app = angular.module('myModule', []);
  app.controller('myController', ['$scope',
    function ($scope) {
      $scope.myNewProperty = "Bob";
    }
  ]);
})();
Run Code Online (Sandbox Code Playgroud)

我已将其转换为可爱的TypeScript类语法:

class myController {
    constructor($scope) {
        $scope.myNewProperty = "Bob";
    }
}

angular.module('myModule', []).controller("myController", myController);
Run Code Online (Sandbox Code Playgroud)

一切正常,除了生成的JS没有根据JS模块模式(即在外部匿名函数中)包装:

var myController =     (function () {
      app.controller('myController', ['$scope',
        function ($scope) {
          $scope.myNewProperty = "Bob";
        }
      ]);
    })();

var app = angular.module('myModule', []);
Run Code Online (Sandbox Code Playgroud)

所以myController现在是全球性的.如果我将类放在TypeScript模块中,那么js将使用模块名称作为全局变量生成:

var TsModule;
(function (TsModule) {
    var myController =     (function () {
          app.controller('myController', ['$scope',
            function ($scope) {
              $scope.myNewProperty = "Bob";
            }
          ]);
        })(); …
Run Code Online (Sandbox Code Playgroud)

javascript scope angularjs typescript

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

定义STA:"单线程亲和力"或"单线程公寓"; 以及它们如何相关

我正在与WPF合作,正在阅读有关STA的资料.两个问题:

1)STA被定义为由不同的文章代表"单线程亲和力"和"单线程公寓".这说前者:https: //msdn.microsoft.com/en-us/library/ms750441(v = vs1010).aspx 这说后者:https: //msdn.microsoft.com/en-us/库/ ms742522(v = vs.110)的.aspx

这是什么,或STA可以参考这些相关概念中的任何一个?

2)将它们的关系描述为正确:单线程单元是Windows的各个组件使用的模型,线程亲和性是该模型的一个特征吗?

谢谢.

c# com wpf sta winforms

5
推荐指数
1
解决办法
2140
查看次数

实体框架,通用存储库模式和奇怪的SQL生成

我已经实现了Entity Framework 4的通用存储库.这是一个愚蠢的版本,其中AllAppContainer是EF4对象上下文:

public class Repository<T> where T : class
{
    protected AllAppContainer objectContext;
    protected ObjectSet<T> entitySet;

    public Repository()
    {
        objectContext  = new AllAppContainer();
        entitySet = objectContext.CreateObjectSet<T>();
    }

    public int QueryCount(Func<T, bool> predicate)
    {
        int queryCount = entitySet.Count(predicate);
        return queryCount;
    }
}
Run Code Online (Sandbox Code Playgroud)

一种方法是QueryCount(),我想充当选择Count(*)...其中 SQL行(不返回实际记录).

直截了当?你会想......首先,让我们做同一件事的非知识库版本,对Item实体进行计数:

AllAppContainer allAppContainer = new AllAppContainer();
int nonRepCount = allAppContainer.Items.Count(item => item.Id > 0);
Run Code Online (Sandbox Code Playgroud)

SQL Server Profiler说生成的SQL是:

SELECT 
[GroupBy1].[A1] AS [C1]
FROM ( SELECT 
    COUNT(1) AS [A1]
    FROM [dbo].[Items] AS [Extent1]
    WHERE [Extent1].[Id] > 0 …
Run Code Online (Sandbox Code Playgroud)

sql generics entity-framework repository

4
推荐指数
1
解决办法
1719
查看次数

Mono for Android外置(SD卡)文件IO

我正在尝试创建我的第一个Mono for Android应用程序,并且尝试读取或写入sdcard时遇到权限错误.所以我转到了SanityTests,xamarin-monodroid-samples-d76baf3.

Example_WorkingWithAudio RecordAudio.cs在内部存储上成功运行.它还具有在清单中应用的WRITE_EXTERNAL_STORAGE权限 ; 所以我然后取消注释:

Java.IO.File sdDir = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryMusic);
filePath = sdDir + "/" + "testAudio.mp3";
Run Code Online (Sandbox Code Playgroud)

所以现在代码如下:

Java.IO.File sdDir = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryMusic);
filePath = sdDir + "/" + "testAudio.mp3";
Java.IO.File myFile = new Java.IO.File(filePath);
myFile.CreateNewFile();
Run Code Online (Sandbox Code Playgroud)

我在运行Android 2.3.4的索尼爱立信Xperia Mini Pro上执行此操作.

当执行到达CreateNewFile()行时,filePath具有值:"/ mnt/sdcard/Music/testAudio.mp3".

然后抛出此错误:

Java.IO.IOException: Exception of type 'Java.IO.IOException' was thrown.
  at Android.Runtime.JNIEnv.CallBooleanMethod (IntPtr jobject, IntPtr jmethod) [0x00023] in /Users/builder/data/lanes/monodroid-mac-monodroid-4.2.6-

branch/632e6ddf/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:156 
  at Java.IO.File.CreateNewFile () [0x0003e] in /Users/builder/data/lanes/monodroid-mac-monodroid-4.2.6-

branch/632e6ddf/source/monodroid/src/Mono.Android/platforms/android-8/src/generated/Java.IO.File.cs:771 
  at Example_WorkingWithAudio.RecordAudio.StartRecorder () [0x00044] in c:\Users\Matt\Downloads\xamarin-monodroid-samples-d76baf3\xamarin-monodroid-samples-

d76baf3\Example_WorkingWithAudio\Example_WorkingWithAudio\RecordAudio.cs:35 
  --- End of managed exception …
Run Code Online (Sandbox Code Playgroud)

file-io android-sdcard xamarin.android xamarin

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