如果问题不明确.我在一个解决方案中有3个MVC项目.每次我创建一个新项目时,它都会添加"Scripts"文件夹,其中包含我需要的所有.js文件.我不想每次都为每个应用程序创建这个.有没有办法从解决方案中的中央文件夹引用脚本,以便所有应用程序/项目可以共享一个公共脚本文件夹,其中包含所有常见脚本?
编辑: 如果有任何问题,请解释这样做的利弊...现在我很好奇.
在Visual Studio中,有一种方法可以将文件放在另一个项目中,该文件是第一个项目的快捷方式,以便在两者中构建.我怎么做?
我有一个包含所有数据库逻辑的类库.我的DAL/BLL.
我有一些Web项目将使用相同的数据库和类,所以我认为将数据层抽象到自己的项目中是一个好主意.
但是,当为某些项目的类添加功能时,我想向某些类添加方法.
例如,我的数据层有Product和SomeItem对象:
// Data Access Layer project
namespace DAL {
public class Product {
//implementation here
}
public class SomeItem {
//implementation here
}
}
Run Code Online (Sandbox Code Playgroud)
在一个项目中,我想添加一个由不同内容项使用的接口,所以我有一个名为的类:
// This is in Web Project
namespace DAL {
public partial class Product : ICustomBehaviour {
#region ICustomBehaviour Implementation
TheSharedMethod();
#endregion
}
}
Run Code Online (Sandbox Code Playgroud)
使用相同的命名空间在单独的项目(创建依赖项)中编写部分类是一个好主意吗?如果这是一个坏主意,我怎样才能使这种类型的功能工作?
它似乎不想在编译时合并它们,所以我不确定我做错了什么.
Visual Studio中提供了不同类型的类库,例如Silverlight类库,可移植类库和类库.这些类型有什么区别?我们如何确定带有File.dll文件的类库的类型?我们如何将类库从自己的类型更改为另一种类库?
在 Visual Studio 2015 中添加普通项目(WPF 应用程序、Windows 窗体应用程序等)与共享项目作为参考有何实际影响?
我知道共享项目是一个相当新的(自 VS 2013 以来)并且可能是更优越的功能,所以我想知道所有差异。
一个区别可能是,如果所有这些项目都具有要使用的代码,则共享项目中的文件可以使用添加共享项目作为参考的项目中的代码吗?当然,这在正常项目中是不可能的。
另外,由于某种原因,如果我在共享项目上执行“添加 -> 新项目...”,Visual Studio 向我显示的建议要少得多。
我们正在使用Visual Studio 2017并拥有两个独立的Web项目,这些项目应该共享一些React编写的组件TypeScript.还可以有共享JavaScript文件和CSS文件.为此,我们Shared Project在Visual Studio中创建了一个.
Visual Studio 2015中的共享项目和类库有什么区别?
现在,项目只有一个包含此信息的文件.
export const Types = {
Type1: '1',
Type2: '2',
Type3: '3'
}
Run Code Online (Sandbox Code Playgroud)
为了测试,我可以像这样引用它,Visual Studio将找到该文件:
import { Types} from '../../../2/Constants/Types'
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行时,webpack我收到以下错误:
TS6059:文件'/2/Constants/Types.ts'不在'rootDir'/ 1'下.'rootDir'应包含所有源文件.
我是共享项目的忠实粉丝,我想类似地使用T4模板:在不同的解决方案中引用共享项目,并且无需麻烦地访问生成的内容.
如何使T4模板在共享项目中工作?
我正在开发一个Web项目,我需要共享一个母版页,这样当我创建一个新页面时,它就有了基本的布局.我想到的是用该母版页创建一个项目,并在每个Web项目中添加它作为参考.但问题是我不知道如何在我想要应用MP的.aspx文件中嵌入母版页,或者它是在项目之间共享母版页的最佳方式.我会帮助或评论任何帮助!
在这里,我给你我的代码(这不起作用):
Index.aspx:
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="" CodeBehind="Index.aspx.cs" Inherits="MiWeb.Index" %>
<HeaderMp:Header ID="ctntHead" ContentPlaceHolderID="head" runat="server">
<title>SITPer</title>
</HeaderMp:Header>
Run Code Online (Sandbox Code Playgroud)
Header.Master:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Header.Master.cs" Inherits="MasterPages.Header" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<script src="js/jquery.min.js"></script>
<script src="js/jquery.dropotron.min.js"></script>
<script src="js/skel.min.js"></script>
<script src="js/skel-layers.min.js"></script>
<script src="js/init.js"></script>
<noscript>
<link rel="stylesheet" href="css/skel.css" />
<link rel="stylesheet" href="css/style.css" />
<link rel="stylesheet" href="css/style-desktop.css" />
</noscript>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<div>
<!-- Header -->
<div …Run Code Online (Sandbox Code Playgroud) 我有一个包含 2 个项目的解决方案...
项目 A 有以下 A - 参考第三方 DLL(其中有一个名为“Response”的类) B - 使用上述 DLL 并从名为“GetResponse”的方法返回“Response”对象的类
现在项目 B 像这样调用项目 A 中的类......
Response r = ProjectA.Class.GetResponse();
Run Code Online (Sandbox Code Playgroud)
这将返回一个错误,因为我的项目 B 中没有“第三方”引用。
我宁愿不将我的第三方 DLL 发送到我的所有其他项目,只是为了从第三方DLL获取对响应对象的引用。
那么有没有办法无需将第 3 方引用添加到项目 B 中呢?
在C ++的“旧时代”中,您有两种选择来创建(类或其他)库-DLL或静态可链接。
我的解决方案中有一些项目是“共享”库,供同一解决方案中的两个或多个其他项目使用。现在,它们被导出为DLL,然后被忠实地复制到使用它们的每个实际可执行文件的“ bin”文件夹中。
我讨厌看到所有这些DLL都在运行(对于我的库和Nuget提供的第三方库),如果有.NET的方式,我实际上更喜欢将它们“链接”到可执行文件中因此(除了将代码放在单独的文件夹中并将其包括在所有项目中,这对于通过查看解决方案资源管理器使其变得很明显而言是很丑陋的)。
那么-.NET的“链接”库是否已失效并消失了?如果是这样,那么至少有一种注册程序集的方式(我们过去用于注册COM DLL的方式),以便在解决方案中安装了多个可执行文件的情况下,只有一个DLL副本。在多个位置复制相同的DLL的概念?
所以我有两个类,如下所示。它们都在同一个命名空间和同一个共享项目中。
public class Person{
public string Name{get;set;}
}
public class EmployedPerson : Person{
public string JobTitle{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
当我将这些项目序列化为 rabbitmq 时,我将序列化为基类,如下所示:
JsonSerializerSettings settings = new JsonSerializerSettings
{
TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple,
TypeNameHandling = TypeNameHandling.Objects
};
JsonConvert.SerializeObject(input, settings)
Run Code Online (Sandbox Code Playgroud)
但是在反序列化时我遇到了问题。我希望能够执行如下所示的操作,其中我将反序列化为基类,然后检查它是否是继承类型。
类型检查:
Person person = Deserialize<Person>(e.Body, Encoding.Unicode);
if (person is EmployedPerson)
{
logger.LogInformation("This person has a job!");
}
Run Code Online (Sandbox Code Playgroud)
反序列化设置:
JsonSerializerSettings settings = new JsonSerializerSettings
{
TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple,
TypeNameHandling = TypeNameHandling.Auto
};
Run Code Online (Sandbox Code Playgroud)
反序列化逻辑:
private static T Deserialize<T>(byte[] data, Encoding encoding) where T : class
{ …Run Code Online (Sandbox Code Playgroud) c# ×7
.net ×3
asp.net ×1
asp.net-mvc ×1
javascript ×1
json ×1
json.net ×1
shortcut ×1
t4 ×1
typescript ×1
web ×1
webforms ×1
webpack ×1