在Silverlight中获取当前Windows用户名

1个评论48次阅读2011.07.14 16:17 作者:Felicia 编辑

[阅读更多]

你可以设法通过这种方式:

1)创建asp.net Web服务应用程序。

2)实现一个Web服务,包含如下方法

[WebMethod]
public string GetClientUserName()
{
    return System.Web.HttpContext.Current.User.Identity.Name.ToString();
}

3)部署此Web服务。 不允许匿名用户访问。

4)在Silverlight应用程序中引用这个服务。

5)现在,你可以调用这个方法,获得当前WIndows用户名。

标签 | 日志分类:Silverlight
[阅读更多]

Silverlight程序中,App.xaml中片段如下(使用了资源文件):

<Application.Resources>
    <ResourceDictionary>
...
        <res:StringLib x:Key="StringRes" />
    </ResourceDictionary>
</Application.Resources>

在VS2008 SP1下编译通过,但是执行时报错:Invalid or malformed application: Check manifest

检查了manifest,并没有错误

仔细检查之后发现,VS生成的StringLib.Designer.cs中,StringLib类的构造函数是internal的,而App.xaml.cs中的App类并不和StringLib在同一命名空间中,所以调用构造函数的时候会出错。但是很诡异的是报了个Check manifest的错误,不知道是不是VS的bug。

[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal StringLib() {
}

解决方法就是手动把该构造函数改成public的,如下:

[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public StringLib() {
}

这样再编译运行就不会有上面的错误了。

标签, | 日志分类:C#, Silverlight

xaml namespace中的点

发表评论7次阅读2010.01.11 15:23 作者:Felicia 编辑

[阅读更多]

切记:silverlight的xaml中,定义xmlns,一定不能带点(就是英文的句号)

比如

xmlns:gccfeli.cn="clr-namespace:gccfeli.cn"

这就不对了,编译不通过,而且VS给出的错误提示非常诡异,是Length cannot be less than zero.

估计是VS的代码没写好。

应该改成

xmlns:gccfelicn="clr-namespace:gccfeli.cn"

这样就能编译通过

标签, , , , | 日志分类:Silverlight