小编Ond*_*cny的帖子

三层架构中的验证

假设有一个 Employee 类,业务需求之一是 EmployeeName 变得唯一。现在使用 3 层架构,

第 1 层:表示
层 第 2 层:域模型 + 数据服务类(业务逻辑层)
第 3 层:数据访问类 + 存储过程(数据访问层)

既然上面的需求是业务需求,您认为这条规则最好放在哪里?

选项 1:数据库中的唯一键约束

选项 2:检查业务层数据服务类中的条件,以便无论使用哪个数据层,都将业务逻辑封装在该层中?

validation 3-tier

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

引用类型仍然需要通过ref?

请考虑以下代码(为简单起见,我没有遵循任何C#编码规则).

public class Professor
{
    public string _Name;

    public Professor(){}

    public Professor(string name)
    {
        _Name=name;
    }

    public void Display()
    {
        Console.WriteLine("Name={0}",_Name);
    }
}

public class Example
{
    static int Main(string[] args)
    {
        Professor david = new Professor("David");

        Console.WriteLine("\nBefore calling the method ProfessorDetails().. ");
        david.Display();
        ProfessorDetails(david);
        Console.WriteLine("\nAfter calling the method ProfessorDetails()..");
        david. Display();
    }

    static void ProfessorDetails(Professor p)
    {
        //change in the name  here is reflected 
        p._Name="Flower";

        //Why  Caller unable to see this assignment 
        p=new Professor("Jon");
    }
}
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,输出是:

在调用方法之前,教授Details()......

姓名=大卫 …

c#

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

从自定义基类继承T4模板,未安装Visual Studio 2010 SDK

我有一个T4模板系统 - 在运行时执行,而不是在编译时执行 - 它在我的应用程序中生成许多类的骨架.所有这些模板都驻留在生成器工具中,该工具不时用于将新类预生成到目标应用程序中.该工具包含一个配置类,其属性参数化所有T4模板的输出.

最初配置类是静态类.但是,随着类生成器工具的增长,最好使其成为非静态的,而是为每次使用创建一个新实例.问题是如何将此实例传递给T4模板的实例.自然的方式似乎是从一个公共基础继承它们,这个公共基础将配置配置类实例.

问题是,TextTransformation我的自定义T4基类继承的类位于一个程序集中(根据这个SO问题的来源)不附带Visual Studio 2010.而是在Visual Studio中提供它2010 SDK.

VS2010生成的基类虽然本身没有祖先,但不是部分的,所以没有办法通过另一个部分声明"注入"自定义祖先.

因此问题是:有没有办法从自定义基类继承运行时执行的T4模板而无需安装Visual Studio 2010 SDK?

免责声明:我对T4不是很熟悉,所以对于如何解决这个问题我可能完全错了.因此,欢迎任何其他建筑建议,虽然我的目标不是创建一个超级架构的发电机 - 它只是一个辅助工具,对于偶尔的读者来说应该是简单易懂的.

t4 inheritance visual-studio-2010

5
推荐指数
2
解决办法
3542
查看次数

我怎样才能看到发送的实际原始请求

为了查看原始响应,我使用OnBeforeDeserialization事件,但我想查看原始请求,因为我收到错误,我想知道发送的确切内容.
有没有办法在不使用restsharp源代码并进行调试的情况下执行此操作?
谢谢

编辑1:
管理以捕获fiddler的流量:这是请求的TextView:

assignee=test&milestone=0&state=open&title=test%20issue&body=test%20issue
Run Code Online (Sandbox Code Playgroud)

这是回应:

{"message":"Problems parsing JSON"}
Run Code Online (Sandbox Code Playgroud)

这是我配置我的请求的方式:

var request = new RestRequest();

    request.Resource = "repos/" + repo_slug + "/issues";
    request.Method = Method.POST;
    request.OnBeforeDeserialization = resp => { cnt = resp.Content; };
    // Convert Issue:
    GitModels.IssuePost toPostIssue = Git2Bit.GitModels.Bit2GitTranslator.translate(bitIssue);

    request.AddParameter("assignee", toPostIssue.assignee, ParameterType.GetOrPost);
    request.AddParameter("milestone", toPostIssue.milestone, ParameterType.GetOrPost);

    request.AddParameter("state", toPostIssue.state, ParameterType.GetOrPost);

    request.AddParameter("body", toPostIssue.body, ParameterType.GetOrPost);
Run Code Online (Sandbox Code Playgroud)

获取问题而不是发布作品.:|

c# rest restsharp

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

尝试使用Sharepoint和Microsoft Graph api获取配置文件信息

https://graph.microsoft.com/v1.0/me我尝试获取邮件网址时,我会不断收到回复"mail:null".

完整回复如下:

{
  "@odata.context": "https://graph.microsoft.com/v1.0/",
  "@odata.type": "#microsoft.graph.user",
  "@odata.id": "users/XXXXXXXXX",
  "businessPhones": ["XXXXXXXX"],
  "displayName": "XXXX XXXX",
  "givenName": "XXXX",
  "jobTitle": null,
  "mail": null,
  "mobilePhone": "XXXXXXXX",
  "officeLocation": null,
  "preferredLanguage": "en-US",
  "surname": "XXXXXXX",
  "userPrincipalName": "XXXXXXX@XXXXX.onmicrosoft.com",
  "id": "XXXXX-XXXXX-XXXXX"
}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么它不会返回完整的个人资料信息?我使用的是1.0版.

sharepoint microsoft-graph

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

内部 DTD 中的参数实体

我有以下内容simple.dtd

<!ENTITY % placeholder "my, element, list">
<!ELEMENT root (%placeholder;)>
<!ELEMENT my (#PCDATA)>
<!ELEMENT element (#PCDATA)>
<!ELEMENT list (#PCDATA)>
Run Code Online (Sandbox Code Playgroud)

simple.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE root SYSTEM "simple.dtd">

<root>
    <my />
    <element />
    <list />
</root>
Run Code Online (Sandbox Code Playgroud)

这有效并且有效。

但完全相同的 DTD 内联:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE root [
        <!ENTITY % placeholder "my, element, list">
        <!ELEMENT root (%placeholder;)>
        <!ELEMENT my (#PCDATA)>
        <!ELEMENT element (#PCDATA)>
        <!ELEMENT list (#PCDATA)>
]>

<root>
    <my />
    <element />
    <list />
</root>
Run Code Online (Sandbox Code Playgroud)

失败并出现错误:

$ …
Run Code Online (Sandbox Code Playgroud)

xml dtd

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

构造表达式树会导致InvalidPathException

我正在构建一个表达式树(Expression<Func<PlainAddress, bool>> predicate)以将其传递给IQueryable.WhereHNibernate 的函数来执行查询.当我通过时:

 predicate = y => y.Address.City == geoObject.Name;
Run Code Online (Sandbox Code Playgroud)

一切正常.当我通过时:

var x = Expression.Parameter(typeof(PlainAddress));

Expression<Func<PlainAddress, string>> expression = y => y.Address.City;

predicate = Expression.Lambda<Func<PlainAddress, bool>>(
    Expression.Equal(
        Expression.Invoke(expression, x), 
        Expression.Constant(geoObject.Name)), 
        x);
Run Code Online (Sandbox Code Playgroud)

我得到以下异常

Invalid path: 'y.Address.City' 
[.Where(NHibernate.Linq.NhQueryable`1[BPPDicsManager.Domain.Entities.PlainAddress], 
Quote((60ee8287-3f42-426a-8c15-41f62f58623c, ) => (String.op_Equality((y, ) => 
(y.Address.City)60ee8287-3f42-426a-8c15-41f62f58623c, p1))), )]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?这两个选项有什么区别?

.net c# expression-trees

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

如何从字符串中提取字符范围

如果我有一个如下字符串:

 String myString = "SET(someRandomName, \"hi\", u)"; 
Run Code Online (Sandbox Code Playgroud)

在哪里我知道它"SET("总是存在于字符串中,但是长度"someRandomName"未知,我将如何删除所有字符"("到第一个实例"""?所以要重新迭代,我想删除这个子字符串:"SET(someRandomName, \""from myString.

我怎么在C#.Net中这样做?

编辑:我不想为此使用正则表达式.

.net c# string

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

让windows决定如何打开/运行文件?

我正在保存文件(图像,Excel文档,Word文档,exe文件,bat文件等).我需要从程序内部执行文件,问题是是否有办法让Windows处理如何运行/执行文件?就像在资源管理器中双击文件一样?

.net c# windows io

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

如何反序列化"ref"参数

我正在尝试解析包含名为ref的参数的json文件.我正在反序列化为类结构:

public class JiveContentObject
{
   public int id { get; set;}
   public string subject { get; set;}
   ..etc
}
Run Code Online (Sandbox Code Playgroud)

但是,我不能完全写,public string ref {get; set;}因为ref是c#中的关键字.有什么方法可以解决这个问题吗?

.net c# json json-deserialization jive

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