1.C# 中的虚方法 和 C++中的作用一致,能让指向子类的父类指针优先到子类中寻找方法,而不是直接调用父类中的方法。

看一段例子回忆下:

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Person student = new Student();
student.speak();
student.sing(); }
} class Person {
public virtual void speak() {
Console.WriteLine("person speak");
} public void sing() {
Console.WriteLine("person sing");
}
} class Student:Person
{
override public void speak()
{
Console.WriteLine("student speak");
} new public void sing() {
Console.WriteLine("student sing");
}
}
}

输出如下:

2. 在程序中使用 HttpContext.Current.Session["CurrentAdmin"] = objAdmin; 这类的与session相关的函数后,asp.net 框架会默认添加一个名为 ASP.NET_SessionId 的cookie,这个cookie有24个字符,用来让系统区分请求所对应的session。如果确实不希望这个字段出现在cookie里,可以通过调用 Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddYears(-1); 让这个cookie过期,游览器就会自动删除这个cookie。另外这个cookie是保存在内存中的,并不会在磁盘上,所以关了游览器,cookie也就没了。

3. 今天开发遇到一个bug,说的是关于assembly未正确配置,其实这个assembly在.NET中就是对应的dll文件,如果出错,就需要看看是不是在bin文件夹中缺失了某个dll。

4.今天做一个上传功能,在服务器端用的是Server.MapPath 这个方法获得路径,具体的路径是/Upload ,在默认iis express 运行环境下,没有问题,后来为了调试,把程序放到了本机的IIS上,结果上传没有错误,却取不到数据了。后来发现,这个网站被当做了子站发布在了IIS的默认网站下,那么Server.MapPath 其实返回的是http://localhost/Upload ,也就是在主站点下的upload文件夹,而不是 子站的http://localhost/webapplication/Upload. 所以上传虽然成功了,但是上传的位置错了!要解决问题,把网站作为单独主站点就可以了。

我的错误配置如下:

这种在主机端口号后,还有一个路径的写法,系统就会为我们创建子文件夹存放数据,但是运行时取到的server的path信息,会是主站点的虚拟路径。

正确的做法是,先在IIS中创建一个站点,配置好信息,之后在vs中进行配置,修改后的截图如下:

5. 今天在写Entity Framework相关代码时,没有把实体中的关联属性声明为Virtual,结果发现,无法从数据库读取关联属性了,结果全部是null,后来查看了以下文章:

https://stackoverflow.com/questions/8542864/why-use-virtual-for-class-properties-in-entity-framework-model-definitions?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

这里面说到了,如果不使用virtual对 navigation 属性声明,取出的对象就不会包含navigation属性的相关内容,其实就是不会对navigation属性进行sql检索操作。但即使不声明,也可以通过其他方法读取内容。比如以下代码:

context.Votes.Include(v => v.ToUser).ToListAsync();

这样检索的话,即使 vote 的 toUser 属性没有声明为virtual,也可以被sql一次性读取出来。另外,目前.Net Core 中的 EntityFramework core 默认不支持virtual这种懒加载。

再看看stackoverflow上关于ef中的virtual的说明:

If you opt to never use the lazy loading or change tracking features of the Entity Framework (which is not the default) then you needn't declare any of your navigation properties as virtual. You are then responsible for loading those navigation properties yourself, either using what the Entity Framework refers to as "eager loading", or manually retrieving related types across multiple database queries.

6.关于IIS 中的 module 和 handler。 在web.config里,经常可以看到对module 和 handler的配置section。这里的module和handler既可以是自己写的,也可以是系统提供的。我对module的理解就是,它处理通用的逻辑,比如,身份验证,一个请求可以经过任意多个module的处理。handler针对的是某一类资源的,比如aspx,是真正的处理请求,返回数据的结构,一个请求,只能经过一个handler的处理。推荐一个文章https://www.cnblogs.com/fengzheng/p/3666774.html

初学ASP.NET 知识点的更多相关文章

  1. 初学Java 精简知识点总结

    面对Java丰富的知识资料,很多初学者难免觉得迷惘,该学什么,怎么去学?下面给大家讲Java基础知识做了精简总结,来帮助你梳理学习思路,赶快看看吧! 方法/步骤1 对象的初始化(1) 非静态对象的初始 ...

  2. ASP.net知识点

    2 .列举ASP.NET 页面之间传递值的几种方式. 答: (1)QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中. 如果是传递一个或多个安全性要求不高或是结构简 ...

  3. ASP.Net 知识点总结(四)

    1.get和post 的区别 get是从服务器上获取数据,post是向服务器传送数据; get安全性非常低,数据显示在地址栏,post安全性较高: 但是执行效率却比Post方法好: get有字节限制为 ...

  4. ASP.Net 知识点总结(三)

    1.描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 答:不是.可以用任意类型. 2.<%# %> 和 <% %> 有什么区别? 答:<%# %>表示绑定 ...

  5. Asp.NET 知识点总结(二)

    1.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 答:不对,有相同的 hash code 编码格式. 2.swtich是否能作用在byte ...

  6. Asp.NET 知识点总结(一)

    1.简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有类,私有成员, 在类的内部才可以访问. protected : ...

  7. ASP.NET知识点汇总

    一 ,html属性20181113常用的居中方法1 text-align2 float3 margin (margin-left matgin-right margin-bottom margin-t ...

  8. 初学JQuery相关知识点

    [简单的JQuery]注册事件的函数. $(document).ready(function(){}) [JQuery提供的函数]$.map(array,fn) 对数组array中每个元素调用fn函数 ...

  9. ASP.NET 知识点总结(七)

    1.new修饰符是起什么作用new 修饰符用于声明类或类的成员,表示隐藏了基类中同名的成员.而new 操作符用于实例化一个类型new 修饰符只能用于继承类,一般用于弥补基类设计的不足new 修饰符和 ...

随机推荐

  1. Vim安装使用和配置

    卸载vim sudo apt-get remove --purge vim (--purge 是完全删除,会连配置文件一起删除) 也可以使用yum等其它方式安装 ,如果提示apt-get命令不存在可以 ...

  2. 洛谷 P1962 斐波那契数列

    题目链接:https://www.luogu.org/problemnew/show/P1962 题目大意: 略 分析: 由于数据规模很大,需要用矩阵快速幂来解. 代码如下: #pragma GCC ...

  3. React Native Flexbox & CSS3 Flexbox

    React Native Flexbox & CSS3 Flexbox https://facebook.github.io/react-native/docs/flexbox/ https: ...

  4. Get Remote Computer Install Software

    #requires -Version 2 function Get-Software { param ( [string] $DisplayName='*', [string] $UninstallS ...

  5. QProcess与外部程序的调用

    项目做到一定阶段,常常须要在原来的project上调用外部程序. Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信. 一.启动外部程序的两种方式:(1)一体式: ...

  6. django xadmin(1)

    filter_horizontal 从‘多选框’的形式改变为‘过滤器’的方式,水平排列过滤器,必须是一个 ManyToManyField类型,且不能用于 ForeignKey字段,默认地,管理工具使用 ...

  7. [洛谷P1392] 取数

    无法用复杂状态进行转移时改变计算方式:巧妙的整体考虑:压缩空间优化时间 传送门:$>here<$ 题意 给出一个n*m矩阵,从每一行选一个数加起来,可以得到一个和.易知总共会有$n^n$个 ...

  8. 【WC2019】数树 树形DP 多项式exp

    题目大意 有两棵 \(n\) 个点的树 \(T_1\) 和 \(T_2\). 你要给每个点一个权值吗,要求每个点的权值为 \([1,y]\) 内的整数. 对于一条同时出现在两棵树上的边,这条边的两个端 ...

  9. MSSQL-最佳实践-Always Encrypted

    摘要 在SQL Server安全系列专题月报分享中,往期我们已经陆续分享了:如何使用对称密钥实现SQL Server列加密技术.使用非对称密钥实现SQL Server列加密.使用混合密钥实现SQL S ...

  10. DFA确定有限状态自动机

    DFA 在计算理论中,确定有限状态自动机或确定有限自动机(英语:deterministic finite automaton, DFA)是一个能实现状态转移的自动机.对于一个给定的属于该自动机的状态和 ...