.net - Set The 'ServerCertificateValidationCallback' Property Back To Its Default Behavior?
Nov 11, 2010
I use the following line of code within a single method to explicitly check and trust an SSL cert from the following host: MyTrustedCompany.com:
ServicePointManager.ServerCertificateValidationCallback = Function(obj As [Object], certificate As X509Certificate, chain As X509Chain, errors As SslPolicyErrors) (certificate.Subject.Contains("CN=MyTrustedCompany.com"))
No problem with the code -> works perfectly 100%.
The problem is, it is too far reaching. I thought its scope would only be within the method I decalred it, but apparently it is a Shared property on the 'ServicePointManager' object, and must then persist for the entire application, which I do not want.
The problem is later I am calling web services of mine, etc and getting the "Could not establish a trust relationship..." exception. This is because in the line of code above I check for the host name of an SSL cert specefic to that method. I quickly tested Returning 'True' from the callback so all certs would be trusted instead of checking for a specefic name (i.e. MyTrustedCompany) and subsiquent requests worked. This is how I know this callback assignment reaches father than that single method. Sure I could extend the callback to include all other certitificate names, but what I would rather do is set the 'ServerCertificateValidationCallback' back to its default behavior. Like the pseudo code below:
In a base class object, I have an overridable subroutine that I would like all derived objects to have the ability to include. However, they don't have to, and if it's not necessary for them to use it, I don't want them to be forced to declare it. To enforce this, I've left the default behavior empty. For example, here's my whole sub:
Protected Overridable Sub MySubroutine(ByVal someObject As Object) End Sub
Is this bad practice? I don't want to declare it as MustOverride, but I don't want default behavior. Is there a "better" way of doing this, or is this perfectly acceptable? I don't want to be that hack programmer...
I have a form with the FormBorderStyle set to SizeableToolWindow. The close button - 'x' in the upper right corner - sends a DialogResult of 'cancel' to the FormClosing event when clicked. How do I set it so that it will send an 'OK'? I tried setting the form's DialogResult to 'OK' in the New method, but that's not working. I checked my code and I'm not setting it anywhere that I can see.
I believe that the correct way to give a property a default value is to use the Default Attribute on the Property.[code]In the property window, the value that's displayed in a grid's property bag when it's newly dropped onto a form is False, not True. It does recognise that the default value should be True because it shows the value as bolded and then de-bolds it when we manualy set it to true - but it doesn't respect the default as the initial value. Is there any way of getting the property bag to respect the default value?
In design mode - how do I change the default back color of buttons? I am using a white font and can not see the writing with the back color. The backcolor is transparent so in runtime it is fine (back color goes to blue and white shows).
I am am having some problems with using My.Settings. I have saved some strings with My.Settings.Save() and am trying to set the strings back to its default value. I have tried using My.Settings.Reload() but it does not do anything. What is the best way to set the strings back to its default value that I have set it to? I have looked around for this question but could not understand what to do to fix the problem. I have gone to msdn.microsoft.com but could not find any good information, only this[URL]..
For a given class, with a default property of list, you can access an instance object in the list by doing myClass.defProperty("key"). You can also achieve the same results by typing myClass.defProperty!Key.
I have been told that using the parenthesis and quotes is faster for the way the runtime accesses the Property, but I'd like to understand what is the difference and how do each work...
I understand C# has a similar behavior by replacing the parenthesis with square brackets.
I'm attempting the following:Default Public Property Data(Of dataType)(ByVal key As String) As dataType
Get Return DirectCast(values.Item(key), dataType) End Get Set(ByVal value As dataType) values.Item(key) = value End Set End Property
[Code]...
It made more sense to make it a property, and it would be the default property of the class. The data type can not be specified on instantiation of the class, because it can contain multiple objects of different data types.
I have a FontFamily property, but I don't know how set the default value:
Public UnitsFontFamilyProperty As DependencyProperty = DependencyProperty.Register("UnitsFontFamily", GetType(FontFamily), GetType(ValueAndUnit), New FrameworkPropertyMetadata(New
I'm converting Visual Basic.Net code to C# in my project. But I have some doubts on how to convert Visual Basic default property to C#. The first option that comes to me are the indexers. Lets imagine the next code in Visual Basic
Public Class MyClass Dim MyHash as Hashtable Public sub New()
The following XAML produces an AmbiguousMatchException. The DataContext for myText is a DataTable consisting of > 1 row which contains a DataColumn named "test":
I am inheriting my own DataGridView (say MyDataGridView) from the standard DataGridView control. What I want is that certain properties of MyDataGridView should have a different default value than what its base have. For example, AllowUserToAddRows, AllowUserToDeleteRows, AllowUserToResizeRows properties should have the default values of False; so that when I drag MyDataGridView into a form in the IDE, the default values shown in the properties grid should be False. Later on, if I want to change them to True from the grid, they will be set accordingly.
I am new to classes, and I am new to Visual Basic in general, but I am working on a multi class program. The code seems to be correct, but I am trying on instantiate a class oject with the code:
I am making a new class that requires a lot of input information. Some of the properties need to be set to a default value, however I do not want to hard code them into the class.
What do you think would be the most efficient way to populate these properties?
I've been thinking of making a new class to hold all the default props and pass them as one object into the new class as a single argument but it seems kind of clunky.
Given a simple class like this: Public Class clsOB Implements System.ComponentModel.INotifyPropertyChanged Private _Frequency As Double Private _Value As Double Public Event PropertyChanged(ByVal sender As Object, ByVal e As [Code] .....
And then I'd like to do something like this: Dim o As New clsOB(50, 30) o = 31
What is the difference between these two methods for defining property value defaults? [code] Is there a reason to use one method over the other for defining the default property values in a class?
I am trying to change the BackColor property of a text box , by code , but I can't do it ... I know the color value (i.e. 255;445,255) but I can't find out how can I set that value by code ... This MSDN has become so useless I can barely get any help from it .
I am getting a strange error when I try to build my solution. The error occurs when I am calling the oGetHeaderValue function and passing the parameters.
Dim oGetHeaderValue As New clsGetHeaderValue Dim returnString As String returnString = oGetHeaderValue(strInvoiceNumber, strOrderNumber)
The error message is: Class 'clsGetHeaderValue' cannot be indexed because it has no default property.
I am inheriting my own datagridview (say MyDataGridView) from the standard datagridview control. What I want is that certain properties of MyDataGridView should have a different default value than what its base have. For example, AllowUserToAddRows,
VB code: Public Class InputBox Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim a, b, S, p a = InputBox("Enter length") b = InputBox("Enter width") S = a * b p = a + a + b + b End Sub End Class
In InputBox lines i get this error: Class 'LearningVB.InputBox' cannot be indexed because it has no default property.
I create a class "Planet" that can be inherited. One of the purposes of inheriting is to create a template with different default property values. Eg:
Public Sub New MyBase.New MyBase.ForeColor = Red
[code]....
Now, to stop the defaults serializing in the InitializeComponent method, there are 2 ways:If I've implemented the properties using the 'DefaultValue' attribute, and made them overridable, the attribute can be overriden with the new value.The problem with this is, there's no way to just make just the attributes overridable, as opposed to the whole property.I could implement every property with protected Reset'PropertyName' and ShouldSerialize'PropertyName' methods. However, this is a bit of a pain in the arse.Is it, generally, an important consideration to ensure that someone who overrides your base class has the ability to change the default values of a property?
The BackColor of the forms in Visual Studio are a light grey, called Control in the Properties panel. How would I set the BackColor property of a Label to this default color?
I am creating a customised version of the ListView control and there are several of the properties that a ListView has that I would like to be set to a different value to the ListView default when a user goes to use my user control.
From what I've found there seems to be a number of people suggesting just set them in the constructor, but to the best of my knowledge that would just mean that the user would not be able to change the properties in the PropertyGrid in the VS IDE.I assume this is probably something extremely simple that I have overlooked.