小编Xan*_*iff的帖子

无法使用Json.NET正确转换为json的枚举

我有一个枚举:

public enum Animal 
{ 
    Dog, 
    Cat, 
    BlackBear 
}
Run Code Online (Sandbox Code Playgroud)

我需要将它发送给第三方API.此API要求我发送的枚举值为小写,有时需要下划线.通常,它们所需的名称与我使用的枚举命名约定不匹配.

使用https://gooddevbaddev.wordpress.com/2013/08/26/deserializing-c-enums-using-json-net/上提供的示例,我尝试使用自定义JsonConverter:

public class AnimalConverter : JsonConverter {
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) {
        var animal = (Animal)value;
        switch (animal)
        {
            case Animal.Dog:
            {
                writer.WriteValue("dog");
                break;
            }
            case Animal.Cat:
            {
                writer.WriteValue("cat");
                break;
            }
            case Animal.BlackBear:
            {
                writer.WriteValue("black_bear");
                break;
            }
        }
    }
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) {
        var enumString = (string)reader.Value;
        Animal? animal = null;
        switch (enumString)
        {
            case …
Run Code Online (Sandbox Code Playgroud)

c# json.net

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

使用ui-router禁用AngularJS中的模板缓存

我注意到,我会不时地对AngularJS应用程序中的一个模板进行更改,并且在运行时,更改将不可见.相反,我将不得不刷新应用程序,如果失败,请转到模板本身的路径并刷新它以查看此更改.

防止缓存这些模板的最佳方法是什么?理想情况下,我希望在当前使用Angular应用程序时缓存它们,但是下次加载页面时,它们会检索最新和最好的模板,而无需手动刷新.

我正在使用ui-router,如果这在这里有所不同.谢谢!

caching angularjs

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

类型<type>同时存在于'A'和'B'中

现在我知道这里已经有很多这样的问题了,但是翻过它们之后,我找不到解决我特定问题的问题了.

我有一个ASP.NET MVC 4.5项目.我使用NuGet并将Newtonsoft.Json添加到项目中.只要我在我的代码中使用它(在camel-case中进行一些序列化),我的项目就不再正确构建,并出现以下错误:

类型'Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver'存在于'C:..\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll"和'C:..\Visual Studio 2013\Projects\myProject\packages\Newtonsoft.Json.6.0.1\LIB \net45\Newtonsoft.Json.dll"

不幸的是,它是相同的文件到每个公钥,所以我不能使用Web.config中的依赖程序集引用(如其他地方所建议).我更喜欢使用通过NuGet检索的DLL,因此升级到新版本更容易.

此外,没有人在Temporary Internet文件夹中,所以我不能简单地删除它并使其工作.

如何指定我想要使用的特定程序集文件,以便我可以正确构建项目?谢谢!

asp.net visual-studio

14
推荐指数
1
解决办法
3339
查看次数

将MODI 2003与C#一起使用时出现"OCR运行错误"

我一直在努力让MODI在今天正常工作.这是我试图使用的代码(改编自维基百科MODI条目中给出的VB .

private void button1_Click( object sender, EventArgs e )
{
    string inputFile = @"C:\testImage.bmp";
    textBox1.Text = GetTextFromImage( inputFile );
}

private string GetTextFromImage( string fileName )
{
    string output = "";
    var doc1 = new MODI.Document();
    doc1.Create( fileName );
    doc1.OCR( MiLANGUAGES.miLANG_ENGLISH, false, false );

    for ( int i = 0; i < doc1.Images.Count; i++ )
    {
        output += doc1.Images[i].Layout.Text;
    }

    doc1.Close();
    return output;
}
Run Code Online (Sandbox Code Playgroud)

当我执行此操作时,我在OCR()行上出现错误,说明以下内容:

System.Runtime.InteropServices.COMException was unhandledMessage=OCR running error Source="" ErrorCode=-959967087
Run Code Online (Sandbox Code Playgroud)

现在,我查找了该错误代码,发现了另一个stackoverflow 问题,他们发现他们无法在小图像上运行OCR,但问题是1700x …

c# ocr modi bitmap

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

不能让流浪汉破坏工作

我刚刚删除了一个我不再需要的大目录.不幸的是,它有一些流浪的情况,我忽略了在它内面停止和摧毁,我现在很难让他们离开.

如果我运行"无业游民全球地位",我收到四个结果,都命名为"默认",三个用的Hyper-V和一个使用VirtualBox的(不知道为什么我有一个VirtualBox的实例的话),几乎VirtualBox的运行过程中,以及所有不再存在的目录.

我刚刚打开了hyper-v管理器,但实际上并不存在这些实例.

如果我尝试对全局状态输出中的任何ID使用"vagrant destroy",我会收到以下错误:

There are errors in the configuration of this machine. Please fix the following errors and try again: 

vm: 
* A box must be specified
Run Code Online (Sandbox Code Playgroud)

如果我查看"vagrant box list"命令,它会生成一个命名框,但我似乎无法对它执行任何操作,因为当我尝试删除它时,我会得到与上面相同的错误.

我该怎么办1)摆脱不会删除的最后一个目录,因为vagrant似乎正在使用这些文件; 2)从vagrant global-status命令中清除这些不应该在这里的条目?

谢谢!

vagrant

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

即使在微不足道的情况下,火花中的VectorAssembler也很慢

我一直在使用Spark进行一些数据分析和机器学习.

读入一些数据作为trainDF后,我构造了两个在逻辑上等效的管道,但其中一个管道在末尾有一个VectorAssembler(只有一个inputCols)来演示减速:

scala> val assembler = new VectorAssembler().setInputCols(Array("all_description_features")).setOutputCol("features")
assembler: org.apache.spark.ml.feature.VectorAssembler = vecAssembler_a76e6412bc96

scala> val idfDescription = new IDF().setInputCol("all_description_hashed").setOutputCol("all_description_features")
idfDescription: org.apache.spark.ml.feature.IDF = idf_4b504cf08d86

scala> val descriptionArray = Array(tokensDescription, removerDescription, hashingTFDescription, idfDescription, assembler, lr)
descriptionArray: Array[org.apache.spark.ml.PipelineStage with org.apache.spark.ml.util.DefaultParamsWritable{def copy(extra: org.apache.spark.ml.param.ParamMap): org.apache.spark.ml.PipelineStage with org.apache.spark.ml.util.DefaultParamsWritable{def copy(extra: org.apache.spark.ml.param.ParamMap): org.apache.spark.ml.PipelineStage with org.apache.spark.ml.util.DefaultParamsWritable{def copy(extra: org.apache.spark.ml.param.ParamMap): org.apache.spark.ml.PipelineStage with org.apache.spark.ml.util.DefaultParamsWritable}}}] = Array(regexTok_316674b9209b, stopWords_8ecdf6f09955, hashingTF_48cf3f9cc065, idf_4b504cf08d86, vecAssembler_a76e6412bc96, logreg_f0763c33b304)

scala> val pipeline = new Pipeline().setStages(descriptionArray)
pipeline: org.apache.spark.ml.Pipeline = pipeline_4e462d0ee649

scala> time {pipeline.fit(trainDF)}
16/09/28 13:04:17 WARN Executor: 1 block locks were not …
Run Code Online (Sandbox Code Playgroud)

performance scala apache-spark

6
推荐指数
0
解决办法
896
查看次数

以编程方式将文件从 Azure Blob 存储传输到 Google Cloud Storage

我有许多文件通过 Azure 数据工厂传输到 Azure Blob 存储。不幸的是,这个工具似乎没有为任何值设置 Content-MD5 值,所以当我从 Blob 存储 API 中提取该值时,它是空的。

我的目标是将这些文件从 Azure Blob 存储传输到 Google 存储。我在https://cloud.google.com/storage/transfer/reference/rest/v1/TransferSpec#HttpData 上看到的有关 Google Storagetransfer 服务的文档表明,如果我提供以下内容的列表,我可以轻松启动此类传输文件及其 URL、长度(以字节为单位)和每个文件的 MD5 哈希值。

好吧,我可以轻松地从 Azure 存储中提取前两个,但第三个似乎不会自动由 Azure 存储填充,我也找不到任何方法让它这样做。

不幸的是,我的其他选择看起来很有限。到目前为止的可能性:

  1. 将文件下载到本地机器,确定哈希值并更新 Blob MD5 值
  2. 看看我是不是不能在同一个区域中编写一个 Azure Functions 应用程序来计算哈希值并将其写入容器中每个的 blob
  3. 根据https://cloud.google.com/storage/transfer/reference/rest/v1/TransferSpec#AwsS3Data使用来自数据工厂的 Amazon S3 出口,然后使用 Google 对从 S3 导入的支持从那里提取它,但这确实似乎浪费带宽(我必须设置一个亚马逊帐户)。

理想情况下,我希望能够编写一个脚本,然后点击开始并不管它。我没有从 Azure 获得最快的下载速度,所以 #1 会不太理想,因为它需要很长时间。

还有其他方法吗?

azure-storage-blobs google-cloud-storage azure-data-factory

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

"无法隐式将'thisMethod <T>'类型转换为'T'"

我在使用下面的代码时遇到了麻烦,希望有人可以告诉我它有什么问题.

我给出的错误是:

无法隐式转换ThisThing<T>T

我的代码:

class ThisThing<T>
{
    public string A { get; set; }
    public string B { get; set; }
}

class OtherThing
{
    public T DoSomething<T>(string str)
    {
        T foo = DoSomethingElse<T>(str);
        return foo;
    }

    private T DoSomethingElse<T>(string str)
    {
        ThisThing<T> thing = new ThisThing<T>();
        thing.A = "yes";
        thing.B = "no";

        return thing; // This is the line I'm given the error about
    }
}
Run Code Online (Sandbox Code Playgroud)

思考?我感谢您的帮助!

.net c# generics compiler-errors

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

$ state.go('state.name')没有正确改变状态

我试图以编程方式在状态之间移动(使用ui.router)而无需用户点击任何内容.http://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$ state 的文档似乎表明我可以用$ state.go('state.名称"),除了我无法使这项工作.

我创造了一个用来证明我的问题的傻瓜.国家最好能够切换它的运行时显示"成功",而不是"失败".如果你看一下控制台,它会说,它无法读取的未定义的属性"走".我怎么能以编程方式改变状态呢?

谢谢!

http://plnkr.co/edit/MSLbKaKzmuXPud7ZcKqs

编辑:更清楚地指明我正在使用ui.router

angularjs angular-ui-router

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

实体框架和添加POCO而不添加子对象

所以也许我正在以错误的方式解决这个问题,但我想从StackOverflow上的好人那里得到关于如何更正确地做到这一点的意见.

我有一个程序,必须从Entity Framework 6.0代码优先上下文的存储库中检索信息,对包含的信息做一些工作,然后向数据库添加一条新记录.

无论如何,这是我从EF通过存储库检索的类的简化外观:

public class Product
{
  public int Id { get;set; }
  public virtual ProductCategory Category { get;set; }
  public string Name { get;set; }
}
Run Code Online (Sandbox Code Playgroud)

然后,我使用以下定义构建一个ProcessedProduct,并将以前检索到的Product作为BaseProduct传递:

public class ProcessedProduct
{
  public int Id { get;set; }
  public virtual Product BaseProduct { get;set; }
}
Run Code Online (Sandbox Code Playgroud)

我使用了我在Pluralsight上的EF课程中看到的存储库层,并且在这里有用.我在下面添加了所有相关位:

public class MyContext : BaseContext<MyContext>, IMyContext
{
  //Lots of IDbSets for each context
  public void SetModified(object entity)
  {
    Entry(entity).State = EntityState.Modified;
  }

  public void SetAdd(object entity) 
  {
    Entry(entity).State = EntityState.Added;
  } …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

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

如何从指令控制器中生成$ http.get请求?

我有一个名为product的AngularJS指令.每当我点击一个按钮时,我就需要采取行动,该按钮是该指令的一部分,涉及向我的服务器发出$ http.get请求并对响应进行处理.我有一个文件似乎工作正常,直到它实际到达发出请求,此时,Fiddler中显示的网址与我尝试提出请求的内容不匹配,我不确定为什么.

正如您在下面看到的那样,请求应该是我的域/ api/product/GetToken api服务,但在Fiddler中,我将其显示为"/ user/[object%20Object]",而我不确定至于为什么会这样.此外,控制台不会产生任何错误.

以下是有问题的指令:

angular.module('myApp').directive('product', function($location) {
 return {
    restrict: 'E',
    replace: false,
    templateUrl: 'path/to/template.html',
    scope: {},
    controller: function($scope, $state, $cookieStore, $http) {
     $scope.productClick = function(key) {
      var url = 'http://exampleurl.com/api/product/GetToken';
      $http.get({url:url})
       .success(d, s, h, c) {
        $state.go('this.someplace');
      }
       .error(function(d, s, h, c) {
        $state.go('this.otherview');
       });
     },
     link: function($scope, e, a, m) {
      $scope.name = a.name + "123";
     }
    }
 }
}
Run Code Online (Sandbox Code Playgroud)

有没有人知道我能做什么,我没有抓到这里?

angularjs

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

如何在 Blazor WebAssemly 应用程序中引用 IHttpClientFactory?

在 VS 2019 中,我尝试HttpClient在 Blazor WebAssemply 应用程序中测试使用。创建新项目时,我选择了该.Net Core 3.1选项。在Program.cs中,HttpClient服务注册如下:

builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
Run Code Online (Sandbox Code Playgroud)

在“框架”部分下,system.net.http列出了。

@inject IHttpClientFactory http我们遇到了无法添加新 Razor 组件的问题。错误消息是:

错误 CS0246 找不到类型或命名空间名称“IHttpClientFactory”(您是否缺少 using 指令或程序集引用?)

Microsoft 站点的在线文档显示了IHttpClientFactorySystem.Net.Http包中定义的。我遇到的错误的根本原因是什么以及如何修复它?

c# blazor httpclientfactory blazor-webassembly

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

在字符串中查找第一个数字序列?

首先,我想通过说这是一个Minecraft插件来解决问题.所以我有一种方法来产生一些怪物(你不知道怪物是什么),并给它们自定义名称.名称基于数字.但我的名字中也有一系列字符.因此,例如,如果暴徒的名称是"355 Blaze",它将返回355的int,并将其余部分删除.我该怎么做?目前我使用子字符串,但它不起作用,好像数字超过9它将只返回第一个数字.

java minecraft bukkit

0
推荐指数
1
解决办法
4064
查看次数