我觉得我在这里服用疯狂的药片.通常,对于任何给定的任务,总有一百万个库和样本浮动在网络上.我试图通过使用JSON网络令牌(JWT)的描述来实现与谷歌的"服务帐户"验证这里.
但是,只有PHP,Python和Java中的客户端库.即使在Google认证之外搜索JWT示例,JWT概念也只有蟋蟀和草稿.这真的是新的,可能是谷歌专有系统吗?
我可以设法解释的最接近的Java样本看起来非常密集和令人生畏.在C#中必须有一些我至少可以开始的东西.任何帮助都会很棒!
我正试图刷新我的记忆但无法找到谷歌的答案.
public class BaseClass
{
    public virtual void DoSomething()
    {
        Trace.Write("base class");
    }
}
public class DerivedClass : BaseClass
{
    public override void DoSomething()
    {
        Trace.Write("derived class");
    }
}
Run Code Online (Sandbox Code Playgroud)
如果我创建一个派生类的实例,我该如何将它转换为它的基类,这样当调用DoSomething()时,它只使用基类的方法?
动态转换仍然会调用派生类的重写方法:
DerivedClass dc = new DerivedClass();
dc.DoSomething();
(dc as BaseClass).DoSomething();
Run Code Online (Sandbox Code Playgroud)
输出:"派生类"
我觉得我在这里服用疯狂的药片,因为我无法弄清楚如何使用自定义控件呈现html 5音频标签.
到目前为止我有这个HTML,它没有问题:
<audio controls preload='none'><source src='the url to the audio' type='audio/wav' /></audio>
Run Code Online (Sandbox Code Playgroud)
如何让它只显示播放按钮,也许在播放时,在其中显示暂停按钮.
从我读到的,
默认情况下,该元素不会公开任何类型的播放器控件.您可以使用普通的HTML,CSS和JavaScript创建自己的控件.该元素具有play()和pause()等方法以及名为currentTime的读/写属性.还有读/写音量和静音属性.所以你真的拥有构建自己的界面所需的一切.
如果您不想构建自己的界面,可以告诉浏览器显示一组内置控件.为此,只需在标记中包含controls属性即可.
但我找不到任何使用自定义控件的示例.你怎么得到播放按钮?
我正在使用MSSQL Server 2008 R2,当我偶然发现索引视图时,我正在尝试优化我的视图.不幸的是,我的大多数视图都使用了索引视图不支持的左外连接.经过一系列的研究,我感到很困惑,最好的办法是解决这个问题.我看到它的方式,我有以下选择:
1)使用技巧将左连接转换为内连接,以使用"OR(IsNull(a)AND IsNull(b))"模拟左连接
我在几个地方找到了这个解决方案,但提到了性能损失.
2)将左连接转换为内连接,并用空guid(00000000-0000-0000-0000-000000000000)替换可空列的空值,并在右表中添加一个匹配guid的行.
这似乎是性能最明显的,但是对于每一行都是空的浪费似乎是空的.
3)将我的观点分为两种观点.第一个视图是我的大部分逻辑,即Indexable.第二个视图派生自第一个视图并添加左连接.
这里的想法是,通过索引的基本视图可能会有性能提升.甚至查询派生的视图至少会获得一些性能优势.
4)不要索引我的观点
是否会使视图比上述任何选项更具性能?
5)我没有想到的想法
我将我的基本场景编写如下:
   CREATE TABLE [dbo].[tbl_Thumbnails](
        [ThumbnailId] [uniqueidentifier] NOT NULL,
        [Data] [image] NULL,
        [Width] [smallint] NOT NULL,
        [Height] [smallint] NOT NULL
     CONSTRAINT [PK_tbl_Thumbnails] PRIMARY KEY CLUSTERED 
    (
        [ThumbnailId] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
    CREATE TABLE [dbo].[tbl_Tags](
        [TagId] [uniqueidentifier] NOT NULL,
        [ThumbnailId] [uniqueidentifier] NULL …Run Code Online (Sandbox Code Playgroud) 在.NET中,有些东西可以在加载程序集时自动在引用的程序集中运行一段代码.
例如,您可以使用位于项目Foo(A类库)中的某种属性来装饰类.项目栏(Web应用程序)只是引用项目Foo.当Bar加载时,Foo中的装饰代码以某种方式运行.我相信这是一个新功能.
谁能告诉这个功能叫什么?
更新:谢谢湿婆!不是模块初始化.虽然它引导我找到正确的答案.PreApplicationStartMethod,它在.NET中受支持!谢谢大家!!
我在这里工作的第一个使用Web Api的MVC 4项目非常狂热.
在MVC 3中,我可以获得如下的查询字符串参数:
var unicornName = Request.Query["unicornName"];
Run Code Online (Sandbox Code Playgroud)
但是在MVC 4中,看起来Request从a HttpRequestBase变为a HttpRequestMessage而Query参数不再存在.所以,嗯,好吧,我现在如何得到它们.我在网上发现了几个例子,但它们很荒谬.
这位老师建议将RequestUri的查询字符串拆分为"&"并找到你的param和pair.这个例子显示了GetQueryNameValuePairs在新请求对象上调用一个方法,它返回一个键值对列表,然后做一些linq来找到你的键和值.得到这么简单的东西真的不是倒退.请告诉我,我错过了什么!
注意:我可以理解它是模型绑定的方式,我应该通过action的方法参数引入查询字符串参数,但是仍然有时需要从Request中提取查询字符串变量(很容易?),例如在过滤器中.
在您认为这是重复之前,请花一点时间.当我在版本控制问题上研究Web Api时,一切都关注版本化控制器和关于在url与头文件中指定版本的最佳实践.
我想弄清楚的是版本输出响应的最佳方法是什么,所以当我推出版本2时,我不会破坏版本1客户端.
让我们说,我为一个网站套件提供不断变化的DAL,为网站和其他服务提供信息.我正在开发一个新的Web Api项目,该项目应该具有符合版本化模式的响应.
我的问题是,在版本控制器之前和未版本化的DAL之前,在Web Api项目中实现版本控制的成熟解决方案/最佳实践是什么?
我想出了一个解决方案,其中包含一个额外的版本化存储库层和一个额外的版本化模型层,因此版本控制器使用版本化存储库来使用版本化模型.我已经设置了Automapper来映射未版本化的域模型(从DAL)到版本化的模型.但是这个设置的继承缺陷是,我必须更新每个新版本的所有地图; 一个指数级增长的问题.
一定有更好的方法.谢谢!
我正在加速使用MVC 4的Web API,我对默认格式有点困惑.我希望API数据是JSON.但是,它以XML格式返回.根据MVC 4入门视频http://www.asp.net/web-api/videos/getting-started/your-first-web-api,默认情况下它应该是JSON.但是当我创建一个新的Web Api项目并运行该示例时,我得到了这个:
<ArrayOfstring><string>value1</string><string>value2</string></ArrayOfstring>
Run Code Online (Sandbox Code Playgroud)
我一直在试图用JSON试图获得这个,但显然有很多关于此的错误信息.如:
GlobalConfiguration.Configuration.Formatters.Insert(0, new JsonNetFormatter(serializerSettings));它应该做的伎俩.但我收集了这个折旧,因为没有一个例子正在运作.我可以做些什么,最好是简单的,默认输出JSON格式的数据?
使用标准路线:
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
Run Code Online (Sandbox Code Playgroud)
通过这些行动:
public class ValuesController : ApiController
{
    // GET api/values
    public string GetAll()
    {
        return "all";
    }
    // GET api/values/5
    public string GetById(int id)
    {
        return "single";
    }
    // GET api/values?ids=1&ids=2
    public string GetByIds([FromUri] int[] ids)
    {
        return "multiple";
    }
Run Code Online (Sandbox Code Playgroud)
并向/ api/values发出请求,我得到以下异常:
Multiple actions were found that match the request: 
System.String GetAll() on type MvcApplication4.Controllers.ValuesController
System.String GetByIds(Int32[]) on type MvcApplication4.Controllers.ValuesController
Run Code Online (Sandbox Code Playgroud)
我一直在试着寻找解决方案.我相信GetAll和GetByIds …
关于这个主题有几个问题,但我的问题非常具体到真正的自我引用.其他问题的所有例子都是循环引用,在这种情况下对我没有帮助.
让我们说我有这个模型:
public class User
{
    [Key]
    public int Id { get; set; }
    ...
    public int CreatedByUserId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
而这张地图:
public class UserMap : EntityTypeConfiguration<User>
{
    public UserMap()
    {
        this.HasRequired(a => a.CreatedByUser)
            .WithMany()
            .HasForeignKey(u => u.CreatedByUserId);
    }
}
Run Code Online (Sandbox Code Playgroud)
迁移生成具有此代码的数据库后,我可以在SQL Management Studio中手动添加Id = 1和CreatedByUserId = 1的用户,这样就可以告诉我这样的自引用可以正常工作.
但是,当使用EF创建用户时,我遇到了"无法确定依赖操作的有效排序"问题.关于这个问题有很多问题涉及一个新实体,它引用另一个在第一个实体上有外键的新实体,这是一个循环引用.在这些情况下的解决方案是首先保存实体之一或在循环实体外键上具有可空id.我不能做其中任何一个,因为第一个是不可能的,第二个是外部约束,我不能有可空的id.
所以,看看如何通过手动添加条目来实现这一点,我可以假设它是EF5的限制.有什么工作?
c# ×6
sql ×2
.net ×1
asp.net ×1
asp.net-mvc ×1
html5 ×1
html5-audio ×1
httprequest ×1
jwt ×1
oauth ×1
oauth-2.0 ×1
polymorphism ×1
sql-server ×1