小编edu*_*911的帖子

如何初始化继承对象的字段

我肯定错过了什么.我无法在不直接访问对象的情况下初始化对象的继承字段.

我的目标是努力保持简单.

package main

type Page struct {
  Title string
}

type Article struct {
  Page
  Id int
}

func main() {

  // this generates a build error: 
  // "invalid field name Title in struct initializer"
  //
  p := &Article{
    Title: "Welcome!",
    Id:    2,
  }

  // this generates a build error: 
  // "invalid field name Page.Title in struct initializer"
  //
  p := &Article{
    Page.Title: "Welcome!",
    Id:         2,
  }

  // this works, but is verbose...  trying to avoid this
  //
  p …
Run Code Online (Sandbox Code Playgroud)

go

10
推荐指数
2
解决办法
5553
查看次数

如何将本地 DynamoDB 与 AWS Go SDK 结合使用?

我正在查看 DynamoDB Go SDK 文档,但找不到如何连接到本地版本的 DynamoDB。我错过了什么?

integration-testing amazon-dynamodb aws-sdk

7
推荐指数
2
解决办法
4947
查看次数

如何使用性能监视器查看当前用户?

修改性能监视器,我看到:

  • Web服务 - >当前连接
  • Web服务 - >获取请求/秒

有更好的柜台可以看吗?或许还有其他软件?

iis performance service monitor

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

C#:如何将网站项目转换为Web项目

更新:所有这些问题都是在Visual Studio中将网站应用程序转换为Web项目.一旦我挖出并找到了解决方案,我在下面标记为答案.

基本上,如果您想要将您的网站项目升级/移动到Web项目,您将遇到许多错误.简短的操作方法在下面的答案中.谢谢大家的意见和帮助.

旧问题和标题如下:

如何将名称空间xx {}包装到所有类文件中?

如何将命名空间包装到webproject(或任何项目)中的所有代码隐藏文件?

namespace MyDomain
{
  // regular code here
}
Run Code Online (Sandbox Code Playgroud)

长话短说...

我一直在转换一个外包给海外的项目.仅在"网络"项目中就有超过20,000个文件,用于这样一个简单的网站(摇头).它是使用VB.NET和C#在vs2005中编写的(是的,两个编译).它最初是一个网站应用程序.我已将其转换为Web应用程序,主要是因为您发布时生成的8,000个"临时"程序集.

好的,我正在转换到VS2008.我已将所有代码转换为C#.看起来不错.我把所有特殊的App_Code/VB和C#代码都带到了单独的程序集中.

现在,当我再次尝试编译时,我会收到大量错误的警报.我通过将代码隐藏文件包装在命名空间中来修复这些问题,并更新usercontrol以使用新的命名空间.

但是......还有5000多个错误...帮助!

alt text http://eduncan911.com/blog/thumbnail/4-15-2009.6-00-13.PM.png

也许有另一种方式?以下是代码隐藏的示例代码段:

public partial class MyHomepage_MyStuff_MyPosts : SecurePage
{ ... }
Run Code Online (Sandbox Code Playgroud)

注意类名MyHomepage_MyStuff_MyPosts.这是指向/MyHomepage/MyStuff/MyPosts.aspx文件位置的目录路径.

错误是代码隐藏文件无法找到对正在使用的控件的引用.如:

ctl_website_rpt.RowCount = _totalCount;
Run Code Online (Sandbox Code Playgroud)

这是ASPX文件中名为"ctl_website_rpt"的控件(它们的命名约定).aspx页面在标题中:

<%@ Page Title="My Posts" Language="C#" 
  MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true" 
  CodeFile="MyPosts.aspx.cs" 
  Inherits="MyHomepage_MyStuff_MyPosts" %>
Run Code Online (Sandbox Code Playgroud)

也许有一种方法可以在其他地方引用这个页面?无需将其更改为命名空间?

namespace Website.MyHomepage.MyStuff
{
  public partial class MyPosts
  { ... }
}

<%@ Page Title="My Posts" Language="C#" 
  MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true" 
  CodeFile="MyPosts.aspx.cs" 
  Inherits="Website.MyHomepage.MyStuff.MyPosts" %>
Run Code Online (Sandbox Code Playgroud)

c# namespaces code-behind visual-studio

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

如何反映具有泛型接口的类型,并获得该类型的泛型

我的第一个目标是使用泛型基于特定接口过滤类型.

我的第二个目标是获取泛型参数本身的类型.

public UserService : IUserService, IDisposable, IExportableAs<IUserService>
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

我不能假设类的结构,它的接口(如果有的话)或类似的.我知道的唯一一件事就是我ExportableAs<T>用来创建这个插件的共享程序集.但是,我需要动态注册该类型.

所以,我使用通用接口来标记要导出的类型.在这种情况下,它是IUserService.我这样做假设一些漂亮的Linq查询可以给我我想要的东西.但是,我有点麻烦.

这是我到目前为止所拥有的:

assembly.GetTypes()
    .Where(t => t.GetInterfaces().Any(i => 
                i.IsGenericType &&
                i.GetGenericTypeDefinition() == typeof(IExportableAs<>))
            ).ToList()
    .ForEach(t => _catalogs.Add(
            new ComposablePart()
            {
                Name = t.FullName,
                Type = t // This is incorrect
            })
        );
Run Code Online (Sandbox Code Playgroud)

这是有效的,但请注意上面的评论"这是不正确的".这种类型是派生类UserService.

我最终的结果是:

  • 泛型类型传入IExportableAs<T>(IUserService在这种情况下)
  • 派生类类型(在本例中为UserService)

这个问题得到了很好的投票,因为它使我接近(如上所示):如何确定类型是否实现了特定的通用接口类型 但是,我需要更进一步找到该泛型类型.

随意修改上面的linq.

提前致谢!

linq generics types

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

为什么WP7全景页面会在更新时跳回?

我正在构建一个GPS相关的应用程序,显示其他计算中的坐标.我的演示代码设置为每秒触发事件.

每当我更新主页面UI(例如,具有计算的纬度的文本框)时,它都可以正常工作.

问题是如果我试图从一侧"轻弹"到另一侧,更改页面.在"轻弹"的过程中,如果要更新文本框,它会将主页面跳回到视图中.

没有视频很难在文本中解释.但想象一下,点击n-holding,然后轻轻地拉开全景屏幕 - 比如说,看看下一页,但还没有翻转.好吧,如果文本框在那段时间内要更新,你将松开鼠标点击保持,它会跳回到主页面.

一旦你到达下一页,它就会停留,我可以看到上一页的溢出更新.没什么大不了的.但它只是试图进入下一页.

我是WP7/Silverlight的新手,所以我一直在尝试使用Dispatcher来提高响应速度.无论我做什么(使用Dispatcher),都会发生这种情况.所以,我猜这与更新的UI有关.

一些小代码总能帮助:

void GeoWatcher_PositionChanged(object sender,
    GeoPositionChangedEventArgs<GeoCoordinate> e)
{
    Deployment.Current.Dispatcher.BeginInvoke(() => MyPositionChanged(e));
}
void MyPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate> e)
{
    var model = GeoProcessor.GetPosition(e.Position);

    latitude.Text = model.Latitude;
    longitude.Text = model.Longitude;
    altitude.Text = model.Altitude;
    accuracy.Text = model.Accuracy;
    direction.Text = model.Direction;
    speed.Text = model.Speed;
    speedAvg.Text = model.SpeedAvg;

}
Run Code Online (Sandbox Code Playgroud)

当更新任何这些文本框时,屏幕会"跳转"回主页面.有点不好的经历.

也许这是正常的?知道用户是否试图"滑动"到下一页是否有事件可以吸引?

提前致谢.

windows-phone-7 windows-phone panorama-control

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

如何为 Go Mod / pkg.go.dev 消费者发布更新包?

如何标记他们的 repo,并让它出现在go mod和/或 pkg.go.dev 中?

我已将我的一个包转换为go mod. 但是,该go mod工具本身似乎只能看到我的包的非常旧版本。

编辑:我只是注意到我的旧版本有一个“v”前缀,而我的新标签没有“v”前缀。

这是根本问题吗?该硬性要求记录在哪里?


我的包裹有问题:https : //github.com/eduncan911/podcast

还有我的标记发布:https : //github.com/eduncan911/podcast/releases

1.4.1
1.4.0
1.3.2
1.3.1
1.3.0 <- this is the current version Go Modules sees available
Run Code Online (Sandbox Code Playgroud)

但是,pkg.go.dev 显示

v1 – github.com/eduncan911/podcast
v1.3.0 – Feb 19, 2017
v1.1.0 – Feb 6, 2017
v1.0.0 – Feb 5, 2017
Run Code Online (Sandbox Code Playgroud)

https://proxy.golang.org/上的常见问题解答说:

我向存储库提交了新更改(或发布了新版本),为什么在我运行 go get -u 或 go list -m --versions 时它没有显示?

为了改善我们服务的缓存和服务延迟,新版本可能不会立即出现。如果您希望新代码立即在镜像中可用,那么首先要确保在底层源存储库中有此修订版的语义版本标记。然后通过 go get module@version 显式请求该版本 …

go go-modules

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

Flash编码(FLV):什么是首选比特率?

我继承了一个项目,该项目将视频发送到远程编码器以编码为FLV.

今天,我注意到我们要求他们以1024kbps的速度编码对我而言,这似乎非常高.

其他人用的是什么?YouTube用于"标准"版本与"高质量"版本的用途是什么?

先感谢您.

flash video flv bitrate

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

控制反转,依赖注入w/SRP和延迟加载

一位开发人员和我正在交谈(轻描淡写地)对象的属性的Lazy-Loading.

  • 他说要使用静态IoC查找调用来解析和延迟加载对象的对象.
  • 我说这违反了SRP,并使用拥有的服务来解析该对象.

那么,在IoC和SRP之后你将如何处理Lazy-Loading?

你不能单元测试那个延迟加载的属性.他重申那句话说:"你已经为UserStatsService进行了单元测试 - 这是你的代码覆盖率." 有效点,但该物业仍然未经测试,但"完整"覆盖.

设置/代码模式:

  • 项目使用严格的依赖注入规则(注入所有服务,存储库等的ctors).
  • 项目通过Castle使用IoC(但可能是Unity之类的任何东西).

一个例子如下.

public class User
{
  public Guid UserId { get; set; }

  private UserStats _userStats;
  // lazy-loading of an object on an object
  public UserStats UserStats
  {
    get
    {
      if (_userStats == null)
      {
        // ComponentsLookup is just a wrapper around IoC 
        // Castle/Unity/etc.
        _userStats = 
          ComponentsLookup
            .Fetch<UserStatsService>()
              .GetByUserId(this.UserId);
      }
      return _userStats;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

以上显示了延迟加载对象的示例.我说不要使用它,并从UI层访问任何需要该对象的UserStatsService.

编辑:下面的一个答案让我想起了延迟加载的NHibernate技巧,即虚拟化你的属性,允许NHibernate创建一个懒惰加载本身的过载.光滑,是的,但我们没有使用NHibernate.

没有人真正解决Lazy-Loading的问题.一些好文章和SO问题接近:

我确实看到了延迟加载的好处.不要弄错我,我所做的只是懒惰加载我的复杂类型及其子类型,直到我切换到忍者的DI方式.好处在于UI层,其中用户的统计数据显示在具有100行的列表中.但是使用DI,现在你必须引用几行代码来获取用户统计数据(不违反SRP并且不违反Demeter法则),并且必须走这条长路径的查找次数100次.

是的,添加缓存并确保编写UserStatsService以用作Singleton模式,从而大大降低性能成本.

但我想知道是否有其他人有一个[顽固]开发人员,他们不会完全屈服于IoC和DI规则,并且拥有有效的性能/编码点来证明解决方案的合理性.

lazy-loading single-responsibility-principle inversion-of-control

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

比较两个枚举w/bitwise单个True结果?

如何比较具有多个位设置的枚举?我一定很遗憾.

我有一个枚举的目标持久值,我有相同枚举的用户设置.我需要比较两者以查看是否存在一个或多个枚举位的单个匹配.

额外奖励:我很乐意在这里使用按位运算符来快捷查询linq(因为我在不同的属性中复制了5到6次).我知道它不易读,但它确实有助于我正在做的事情.

public enum Targets
{
  NotSet = 0,

  Anonymous = 1,
  Everyone = 2
  Adult = 4,
  Child = 8,

  LikesFishing = 16
}
Run Code Online (Sandbox Code Playgroud)

我有多个目标设置的用户:

var loggedInUser = new User()
{
  Username = "eduncan911",
  Targets = Targets.Everyone | Targets.Adult | Targets.LikesFishing
};    
Run Code Online (Sandbox Code Playgroud)

我有多个不同目标的文章:

var article1 = new Article()
{
  Title = "Announcement for Parents and Children",
  Targets = Targets.Adult | Targets.Child
};

var article2 = new Article()
{
  Title = "What fishing boat do you own?",
  Targets = …
Run Code Online (Sandbox Code Playgroud)

c# enums bit-manipulation bitwise-operators

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