小编Nes*_*tor的帖子

如何通过NuGet正确删除PropertyChanged.Fody

我打算在我的一个项目中使用Fody.PropertyChanged,它是通过NuGet正确添加的:

Install-Package PropertyChanged.Fody
Run Code Online (Sandbox Code Playgroud)

我意识到,这是在错误的项目中,所以我使用了uninstall命令:

Uninstall-Package PropertyChanged.Fody
Run Code Online (Sandbox Code Playgroud)

之后我将它添加到正确的项目中.

现在,当我尝试构建我的解决方案时,我在初始项目中得到以下错误,该错误不应该安装Fody:

Fody:你似乎没有配置任何织布工.尝试将Fody nuget包添加到您的项目中.请查看 http://nuget.org/packages?q=fody获取可用软件包列表.

在项目中没有引用Fody,我从packages.config文件中删除了Fody引用,并且没有XML文件.

我还该怎么办?

nuget fody fody-propertychanged

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

如何在 Xamarin Forms WebView 中加载本地 HTML 文件

我打算将本地 HTML 文件加载到 Xamarin Forms WebView 中。

我已将 HTML 文件添加到该assets/HTML文件夹​​中,并将其“构建操作”设置为 AndroidAsset。

我已经实现了基本 URL 查找器界面:

public class BaseUrl_Android:IBaseUrl
    {
        public string Get()
        {
            return "file:///android_asset/";
        }
    }
Run Code Online (Sandbox Code Playgroud)

我尝试在共享可移植代码中使用此文件来加载文件:

   string baseUrl = DependencyService.Get<IBaseUrl>().Get();
   string url = baseUrl + "HTML/local.html";
   myWebView.Source = url;
Run Code Online (Sandbox Code Playgroud)

我还尝试了自定义 WebViewRenderer,并使用了以下代码:

protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
    {
        base.OnElementChanged(e);
        if (e.OldElement == null)
        {
            // lets get a reference to the native control
            var webView = (global::Android.Webkit.WebView)Control;
            // do whatever you want to the WebView here!                                
            webView.LoadUrl(DependencyService.Get<IBaseUrl>().Get()+"HTML/local.html");
            webView.SetWebViewClient(new …
Run Code Online (Sandbox Code Playgroud)

xamarin.android xamarin xamarin.forms

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

SQLite突然认为一切都不是错误

它开始于一个Android手机,简单的创建语句在assets/migrations文件夹中的文件中(我使用名为ActiveAndroid的第三方库,并且2年它工作正常 - 我没有改变任何事情):

CREATE TABLE IF NOT EXISTS Car (Brand TEXT);
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

04-07 15:31:36.683  15738-15738/? E/SQLiteLog? (21) API called with NULL prepared statement
04-07 15:31:36.683  15738-15738/? E/SQLiteLog? (21) misuse at line 63243 of [00bb9c9ce4]
java.lang.RuntimeException: Unable to create application com.activeandroid.app.Application: android.database.sqlite.SQLiteException: not an error (code 0)


at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4394)
            at android.app.ActivityThread.access$1300(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.database.sqlite.SQLiteException: not an error (code 0) …
Run Code Online (Sandbox Code Playgroud)

sqlite android activeandroid

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

实体框架中的移除顺序是不可预测的

我在实体框架代码优先项目中有以下删除方法:

var selectedID = selectedGroup.ID;
var users = (from user in db.Users
               where user.Group_ID == selectedID
               select user);
db.Users.RemoveRange(users);

db.Groups.Attach(selectedGroup);
db.Groups.Remove(selectedGroup);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

这些是模型:

 public class Group
  {
    [Key]
    public Guid ID { get; set; }

    [Required]
    public Guid Branch { get; set; }

  }

  public class User
  {
    [Key]
    public Guid ID { get; set; }

    [Required]
    public Guid Group_ID { get; set; }

  }
Run Code Online (Sandbox Code Playgroud)

当db.SaveChanges()被调用时,我得到一个异常:

DELETE 语句与 REFERENCE 约束“FK_Users_Groups”冲突。冲突发生在数据库“UserDB”、表“dbo.Users”、“Group_ID”列中。该语句已终止。

似乎以相反(随机)顺序调用 Remove 方法。如果我在之后添加另一个 ,它(显然)可以正常工作。db.SaveChanges()RemoveRange()

如何强制删除顺序?

c# entity-framework

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

Caliburn.Micro DisplayRootViewFor抛出NullReferenceException

我的Bootstrapper中有以下代码:

private SimpleContainer container;

protected override void Configure()
{
  container = new SimpleContainer();
  container.Singleton<IEventAggregator, EventAggregator>();
  container.PerRequest<InitialViewModel>();  
}

protected override object GetInstance(Type service, string key)
{
  return container.GetInstance(service, key);
}

protected override IEnumerable<object> GetAllInstances(Type service)
{
  return container.GetAllInstances(service);
}

protected override void BuildUp(object instance)
{
  container.BuildUp(instance);
}
Run Code Online (Sandbox Code Playgroud)

在OnStartup方法中,我调用该DisplayRooViewFor方法:

protected override void OnStartup(object sender, StartupEventArgs e)
{ 
  DisplayRootViewFor<InitialViewModel>();
}
Run Code Online (Sandbox Code Playgroud)

这是InitialViewModel:

    private IEventAggregator eventAggregator;    

    public InitialViewModel(IEventAggregator ea) 
    {
      eventAggregator = ea;
    }
Run Code Online (Sandbox Code Playgroud)

不幸的是,它抛出了NullReferenceException:

Caliburn.Micro.Platform.dll中出现"System.NullReferenceException"类型的异常,但未在用户代码中处理

我检查了CM的源代码并使用相同的代码来测试它:

  protected override void OnStartup(object …
Run Code Online (Sandbox Code Playgroud)

c# caliburn.micro

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

如何使Visual Studio代码自动加载所需的资产

我已经开始使用Visual Studio Code了.

我做了以下步骤来创建一个新的.Net Core控制台项目:

  • 打开一个文件夹
  • 开始了终端
  • 发布命令dotnet new
  • 发出命令dotnet restore
  • 点击F5

我总是得到一个关于遗失资产的警告标志:

在此输入图像描述

我选择了不再问我,这是一个非常糟糕的主意,因为它创建了一个模板tasks.json,我必须手动替换输出路径.

不幸的是,没有选择,比如不要再问我并自动加载资产,所以看来我必须在创建新项目时手动加载.

有更好的解决方案吗?

.net-core visual-studio-code

5
推荐指数
2
解决办法
1310
查看次数

如何从 Cosmos DB 中过滤的 FeedIterator 获取总计数

我有以下代码来过滤 Cosmos DB 中的一些数据:

Container container = await service.GetContainer(containerName, partitionKeyA);
using (FeedIterator<T> resultSet = container.GetItemQueryIterator<T>(
    queryDefinition: GetComplexSQLQueryDefinition(),
    paginationInfo.Token,
    requestOptions: new QueryRequestOptions()
    {
      PartitionKey = new PartitionKey(partitionKey),
      MaxItemCount = 10
    }
    ))
{ 
  FeedResponse<T> response = await resultSet.ReadNextAsync();
  //get total count
  int totalCount = -1;
}
Run Code Online (Sandbox Code Playgroud)

查询可以产生许多记录,因此我需要分页。

不幸的是,我需要项目的总数- 它可能会根据过滤而变化。

根据这个答案,我只有两个选择:

  1. 我创建第二个 SQL 查询,它使用 SQL select 命令来计算记录数 - 然后再次查询数据库以选择实际记录:

    var query = new QueryDefinition("SELECT value count(1) FROM c WHERE c.tenantId = @type");
    query.WithParameter("@type", '5d484526d76e9653e6226aa2');
    var container …
    Run Code Online (Sandbox Code Playgroud)

c# azure-cosmosdb

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

如何在Android中检测触控速度

我添加了一个drawable到我的应用程序,我可以触摸移动,并根据手指移动速度,我想做不同的动作.

我检查了事件,我只能使用MotionEvent.ACTION_MOVE来检测是否有运动.所以我保存了最后一个动作的时间戳并获得了实际值,我计算了动作的增量距离,并使用了公式

速度=距离/时间

但是,速度值显示各种数字,从0到aprox.6但是如果我慢慢地或快速地使用我的手指并不重要.我应该修改什么才能获得触摸移动的速度?

我使用以下代码:

 @Override
  public boolean onTouch(View view, MotionEvent motionEvent)
  {

    final int X = (int) motionEvent.getRawX();
    final int Y = (int) motionEvent.getRawY();
    switch (motionEvent.getAction() & MotionEvent.ACTION_MASK)
    {
      case MotionEvent.ACTION_DOWN:
        RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
        _xDelta = X - lParams.leftMargin;
        _yDelta = Y - lParams.topMargin;
        oldTimeStamp=System.currentTimeMillis();
        break;
      case MotionEvent.ACTION_UP:
           speed=0;
           textView.setText("speed: " + speed);
        break;
      case MotionEvent.ACTION_POINTER_DOWN:
        break;
      case MotionEvent.ACTION_POINTER_UP:
        break;
      case MotionEvent.ACTION_MOVE:
        timeStamp= System.currentTimeMillis();
        long diff=timeStamp-oldTimeStamp;
        double dist=Math.sqrt(Math.pow(_xDelta,2)+Math.pow(_yDelta,2));
        double speed=dist/diff;
        textView.setText("speed: " + speed);
       oldTimeStamp=timeStamp;
        RelativeLayout.LayoutParams layoutParams …
Run Code Online (Sandbox Code Playgroud)

java android

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

C#7.0语言功能在.Net 4.x上编译错误

我有一个使用.Net 4.0的复杂项目.(目标框架是.Net 4).

我使用Visual Studio 2017编译源代码,并使用以下代码:

if(int.TryParse(inputText, out int x))
   StartAnotherMethod(x);
Run Code Online (Sandbox Code Playgroud)

它在我的计算机上成功编译,所以我提交了构建服务器.

令人惊讶的是,它有编译错误.

错误CS1525:无效的表达式术语'int'

错误CS1003:语法错误,','预期

我在在线编译器中检查了它.它使用.Net 4.5,还显示编译错误.

https://dotnetfiddle.net/pibxC2

编译错误(第9行,第32行):无效的表达式术语'int'

编译错误(第9行,第33栏):; 预期

编译错误(第9行,第33栏):无效的表达式术语')'

编译错误(第9行,第34行):; 预期

编译错误(第9行,第34行):无效的表达式术语')'

编译错误(第9行,第35栏):; 预期

正如我所读到的,语言功能不需要新的框架,所以它应该编译没有任何问题.

我错过了什么?

c# c#-7.0

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

ExpandableListView子项的EditText无法保持焦点

我用一个非常复杂的子项xml创建了一个ExpandableListView.它包含TextView,Checkbox和EditText.部分内容如下:

 <TableLayout
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:orientation="horizontal"
               android:stretchColumns="1">
    <TableRow>
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      >
      <TextView
          android:id="@+id/lblData1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textSize="14dip"
          android:paddingTop="2dp"
          android:layout_marginLeft="4dp"
          android:text="@string/lblTitle1"
          android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft"/>
      <EditText android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:selectAllOnFocus="true">

      </EditText>
    </TableRow>
  </TableLayout>
Run Code Online (Sandbox Code Playgroud)

列表视图很好地显示了列表,我可以看到我的子项目及其相应的小部件,但当我在EditText内部单击时,它会显示键盘一瞬间,焦点前进到下一个孩子并隐藏键盘(焦点丢失,而不是移动到下一个EditText).

我怎么能防止这种情况?我想在EditTexts中写文本.

android expandablelistview android-layout

3
推荐指数
1
解决办法
3930
查看次数